CloudKit CKQueryOperation returns CKErrorServerRejectedRequest (15) and HTTP 500 across multiple users

Since July 25, multiple production users have been unable to load previously saved records from a CloudKit private database.

The query uses CKQueryOperation with:

  • Record type: UserAnLi
  • Predicate: category_sub_id == "1401"
  • Sort descriptor: creationDate descending
  • Results limit: 20

The requests consistently fail after approximately 10 seconds with:

  • Error domain: CKErrorDomain
  • Error code: 15 (CKErrorServerRejectedRequest)
  • Underlying error: CKInternalErrorDomain Code=2000
  • HTTP status: 500
  • CKErrorRetryAfterKey: absent
  • CKErrorShouldThrottleClient: absent

Examples from two different users/devices:

  1. iOS 18.3.2 RequestUUID: 67890D6B-8076-4135-9635-7DCCFF38D94F OperationID: A796C6799FA69D66 CloudKit partition: 233 Edge response time: 10024 ms

  2. iOS 26.6 RequestUUID: 1249FEAE-9D5A-40CB-9076-DAD2D8396BCF OperationID: CEC87546C31D61E2 CloudKit partition: 227 Edge response time: 10086 ms

Users are signed in to iCloud, iCloud Drive is enabled, and general network access works normally.

According to TN3162, documented CloudKit throttling normally returns CKErrorServiceUnavailable or CKErrorRequestRateLimited with a retry-after value. These failures instead return CKErrorServerRejectedRequest, HTTP 500, and no retry-after information.

The issue has been reported through Feedback Assistant:

FB24046201

Could this indicate a production CloudKit query/index problem, a server-side query timeout, or an undocumented/misreported throttle? Is there any client-side mitigation, or does this require investigation by the CloudKit backend team?

CloudKit CKQueryOperation returns CKErrorServerRejectedRequest (15) and HTTP 500 across multiple users
 
 
Q