Could not checkout sources because source control information could not be loaded. Please try again later.

About half the time, my bots fail to integrate because


2015-09-15 12:34:22.345 XCSIntegrationExecutor.m:241 [XCSIntegrationExecutor integrationStep:didFinishWithBuildServiceError:result:]
[BuildService, Error] XCSCheckoutIntegrationStep finished integration with an error: Error Domain=XCSBuildServiceDomain Code=-1 "Could not checkout sources because source control information could not be loaded. Please try again later." UserInfo={NSLocalizedDescription=Could not checkout sources because source control information could not be loaded. Please try again later.}


Why can source control information not be loaded?


I also combed the logs in /Library/Developer/XcodeServer for more detail, this line from xcsbuildd.log looks related based on timestamps:


2015-09-15 12:34:22.049 XCSBuildWatcher.m:354 [XCSBuildWatcher serviceDidUpdatePendingIntegrations:]
[BuildService, Info] There are new pending integrations, but we're already building one, so we won't load them.
2015-09-15 12:34:22.096 xcsbuildd[55891:673248]  ERROR BuildService: Failed to fetch full authenticated source control blueprint for integration: Error Domain=NSURLErrorDomain Code=-1206 "The server “127.0.0.1” requires a client certificate." UserInfo={NSUnderlyingError=0x7fac943f5690 {Error Domain=kCFErrorDomainCFNetwork Code=-1206 "(null)" UserInfo={NSErrorPeerAddressKey=<CFData 0x7fac946f1c90 [0x7fff730d4890]>{length = 16, capacity = 16, bytes = 0x10024f787f0000010000000000000000}}}, NSErrorFailingURLStringKey=https://127.0.0.1:20344/api/integrations/c8a02953de3580963805dc9bdd2a9eee/blueprint, NSErrorFailingURLKey=https://127.0.0.1:20344/api/integrations/c8a02953de3580963805dc9bdd2a9eee/blueprint, NSLocalizedDescription=The server “127.0.0.1” requires a client certificate.}


Why does it require a client certificate? Why only intermittently?


Similar error in xcsd.log:


[36minfo [39m [2015-09-15 12:34:23.799][BC068:31E90:51]**************************************************************************************************************************************
 [36minfo [39m [2015-09-15 12:34:23.800][Settings - findOrCreateSettingsDocument] find or create settings document: 'settings'
 [36minfo [39m [2015-09-15 12:34:23.800][SharedDocClass - findOrCreateDefaultSharedDocument] find or create the settings shared document: settings (loadFromCouchDB: false)
 [36minfo [39m [2015-09-15 12:34:23.801][dbCoreClass - findDocumentsWithQuery] using view: settings/all-settings
 [36minfo [39m [2015-09-15 12:34:23.831][dbCoreClass - findDocumentsWithQuery] documents found: 1
 [36minfo [39m [2015-09-15 12:34:23.831][dbCoreClass - findDocumentsWithQuery] done processing.
 [36minfo [39m [2015-09-15 12:34:23.832][SharedDocClass - findOrCreateDefaultSharedDocument] default settings document found in Redis: settings
 [36minfo [39m [2015-09-15 12:34:23.832][SharedDocClass - findOrCreateDefaultSharedDocument] default "settings" obtained successfully.
 [36minfo [39m [2015-09-15 12:34:23.833][BC068:31E90:51][Auth - verifyIfServiceIsEnabledAllowCertificate] verify if the service is enabled or if it's a certified request
 [33mwarn [39m [2015-09-15 12:34:23.833][BC068:31E90:51][Auth - verifyIfServiceIsEnabledAllowCertificate] verifyClientCertificate error: {"status":401,"message":"Unauthorized: client certificate not provided"}


Is this an XCS bug?


Config info:

Server API v6

SDKs: OS X 15A244e, watchOS 13S5325c, iOS 13A4325c

OS X 10.11 (15A279b), Xcode 7.0 (7A192o), OS X Server 5.0.1 (15S2235)