Change token in Cloudkit is not giving me all transactions, please help!

Let's say the sequence of events go like this


  1. I have token A for a Shared Database
  2. Records get created in Shared Database
  3. I fetch for changes and downloaded new records, gets token B
  4. I accepted a new share in the same zone and database
  5. I take the new record (NEW_REC) from inside CKShare.Metadata and saves it, but I dont have a new token
  6. But now NEW_REC gets deleted by the sharer
  7. I then fetch for new changes for the zone and use token B, but CK will not let me know NEW_REC is deleted


I tested this using the dashboard, so it has nothing to do with my code.


Is this intentional? I'm thinking that the algorithm is designed to work like this because it thinks that from the perspective of token B, NEW_REC never existed? So why bother telling the client is deleted?


But that doesn't taken into account that the new record came from metadata. I also wonder the same case if you did CKQuery to get new records, without using CKFetchRecordZoneChangesOperation do you suffer from the same problem?