title: CloudKit CKModifyRecordsOperation gives me a "Protection data didn't match"
body: <p>I'm trying to upload some record changes with CloudKit. I'm truing to use a CKModifyRecordsOperation to do a batch upload of records that have changed on the device. The records are all in a custom zone</p>
  
  <p>For some reason the operation keeps coming back with an error telling me ""Protection data didn't match"</p>
  
  <p>Here's the code:</p>
  
  <pre><code>- (void)updloadLocalChangesWithCompletionBlock:(void (^)(NSError *error))completionBlock
  {
     // Initialize the data
     NSArray *localChanges = self.localChanges;
     NSArray *localDeletions = self.localDeletions;
  
     // Initialize the database and modify records operation
     CKDatabase *database = [CKContainer defaultContainer].privateCloudDatabase;
     CKModifyRecordsOperation *modifyRecordsOperation = [[CKModifyRecordsOperation alloc] initWithRecordsToSave:localChanges recordIDsToDelete:localDeletions];
     modifyRecordsOperation.savePolicy = CKRecordSaveAllKeys;
  
     NSLog(@"CLOUDKIT Changes Uploading: %d", localChanges.count);
  
     // Add the completion block
     modifyRecordsOperation.modifyRecordsCompletionBlock = ^(NSArray *savedRecords, NSArray *deletedRecordIDs, NSError *error) {
         if (error) {
             NSLog(@"[%@] Error pushing local data: %@", self.class, error);
         }
  
         [self.localChanges removeObjectsInArray:savedRecords];
         [self.localDeletions removeObjectsInArray:deletedRecordIDs];
  
         completionBlock(error);
     };
  
     // Start the operation
     [database addOperation:modifyRecordsOperation];
  }
  </code></pre>
  
  <p>Here is the error it's giving me:</p>
  
  <pre><code>[CloudKitSyncManager] Error Uploading Changes: &lt;CKError 0x156654a0: "Partial Failure" (2/1011); "Failed to modify some records"; partial errors: {
      default-00001:(ZoneName:UserRecordID) = &lt;CKError 0x1550b5a0: "Server Record Changed" (14/2037); "Error saving record &lt;CKRecordID: 0x18080430; default-00001:(ZoneName:UserRecordID)&gt; to server: Protection data didn't match"&gt;
  }&gt;
  </code></pre>