Timering

Purp

IOS 11 Watch OS 4 CloudKit - CKError "Unknown Item" (11/2003)

If your users start to use IOS 11 or Watch OS 4, maybe they have this error during CloudKit operations. You should specify an appropriate value for CKModifyRecordsOperation.isAtomic.

If you start to test your App on new IOS version, which use  CKModifyRecordsOperation, you can get this Error message: 

<CKError 0x1c4643d50: "Partial Failure" (2/1011); "Failed to modify some records"; uuid = .....; container ID = "iCloud.com.yourname.yourprojectname"; partial errors: {
Entity.25A3E1B1-8E2D-4FA6-B6F9-DE26E8227192:(QSCloudKitCustomZoneName:__defaultOwner__) = <CKError 0x1c4642fa0: "Unknown Item" (11/2003); server message = "recordChangeTag specified, but record not found"; uuid = ...........>
...  "Batch Request Failed" CKError's omited ...

IOS 11 and WatchOS 4 issues:

CloudKit

Known Issues

  • CloudKit doesn't support unsigned long long values with the high-order bit set. (30567424)
  • Applications that use CKModifyRecordsOperation should specify an appropriate value for CKModifyRecordsOperation.isAtomic. If your client is compiled against iOS 11, operations enqueued against the default CKRecordZone have new behavior because atomic is true by default. If the operation hits a "preflight" failure (most commonly, a network issue uploading a CKAsset, or a malformed CKRecord), the entire operation is canceled. (30838858)

So when you use CKModifyRecordsOperation, after initialisation set it false.