CloudKit private database operations fail with CKError 15 / HTTP 500 for one container across multiple apps (FB22539748)

We are seeing a CloudKit private database failure for this specific container:

iCloud.com.matrixqlc.photodiet.sync

Failure pattern:

  • accountStatus succeeds
  • in some cases ensure/create custom zone succeeds
  • but record/database-level operations consistently fail with:
    • CKErrorDomain code = 15
    • CKInternalErrorDomain code = 2000
    • HTTP 500

Failing operations include:

  • allRecordZones()
  • databaseChanges(since:nil)
  • allSubscriptions()
  • fetch record zone metadata
  • save record
  • fetch record
  • query records

What makes this unusual is that the issue follows the container, not the app.

On the same physical device, same Apple ID, same developer team:

  • PhotoDiet + iCloud.com.matrixqlc.photodiet.sync => fails
  • RepaymentCalculator + iCloud.com.matrixqlc.photodiet.sync => fails
  • PhotoDiet + iCloud.com.matrixqlc.repaymentcalculator.sync2 => succeeds
  • RepaymentCalculator + iCloud.com.matrixqlc.repaymentcalculator.sync2 => succeeds

So this does not currently look like:

  • app-specific entitlement/provisioning issues
  • device/account issues
  • CloudKit API misuse in one app
  • record schema or app business logic issues

It currently looks like the container iCloud.com.matrixqlc.photodiet.sync itself may be in a bad backend state.

Sample request identifiers:

  • RequestUUID: C8403047-0037-4D36-A7A7-CF3C83584A42
  • RequestUUID: 04437D9D-115E-45F5-87B5-A8CD146AE705
  • RequestUUID: C924B620-BAEE-403D-B944-151ADCF3419F
  • RequestUUID: A54E79E1-6037-4533-BA09-18FBC436851C
  • RequestUUID: 3EFD8913-3781-47CF-A48C-B651BF38EA50
  • RequestUUID: 2677A991-40B3-42AB-9CE5-3C4F1288EE08

Feedback Assistant ID: FB22539748

Has anyone seen a container-specific CloudKit private database failure like this, where multiple apps under the same team can access one container normally but consistently fail on another container with CKError 15 / HTTP 500?

CKErrorDomain code = 15 is CKErrorServerRejectedRequest, which indicates that the CloudKit server intentionally rejected your request. The error code doesn't unveil the cause, and so you might consider the following:

  1. Does the issue reproduce stably? If yes, consider checking the parameters of your CloudKit operations. CKErrorServerRejectedRequest can happen if an operation has a bad parameter – For example, the record type of a query operation doesn't exist.

  2. Did you see the issue in the development environment or production? If the former, does reseting the development environment help? You can reset a development environment in CloudKit Console.

  3. Since you have the failed request IDs, did you look into the log in CloudKit Console (Monitor > Logs) to see if the log has more details about the error?

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

I checked CloudKit Console > Monitor > Logs for iCloud.com.matrixqlc.photodiet.sync in the Development environment.

The visible entries appear to be CloudKit Console WEB operations only. For example:

  • database: PUBLIC
  • operationType: ZoneFetch / SubscriptionFetch
  • overallStatus: SUCCESS
  • interfaceType: WEB

I could not find the client-side PRIVATE database failures or the RequestUUIDs from the iOS app in the visible logs.

The failures we are reporting are from iOS client operations against the private database, such as allRecordZones(), databaseChanges(since:nil), allSubscriptions(), fetch zone metadata, save/fetch/query records, all returning CKErrorDomain 15 / CKInternalErrorDomain 2000 / HTTP 500 for this specific container.

Could you please check Apple-side internal logs using the RequestUUIDs we provided?

CloudKit private database operations fail with CKError 15 / HTTP 500 for one container across multiple apps (FB22539748)
 
 
Q