CKFetchRecordZoneChangesOperation not calling recordWithIDWasDeletedBlock on Shared Record Deletion

I have a record that I share from device A to device B. Device B accepts the share and show the info on Device B's UI. Device B subscribes to Database changes on that shared record using a CKDatabaseSubscription.

I then delete that record on device A which then triggers a notification to Device B about a database change. I then handle that notification on Device B by fetching the DB changes using a CKFetchDatabaseChangesOperation. I then subsequently get the Zone changes using a CKFetchRecordZoneChangesOperation.

I get calls to recordZoneFetchCompletionBlock and fetchRecordZoneChangesCompletionBlock but that is it. Neither recordChangedBlock nor recordWithIDWasDeletedBlock is called.

It is important to note I'm using this exact same code to monitor shared records of another type and it works. It's actually a record that is a child of a child in this record. So I'm not sure why this top level/parent record would not show as being deleted when queried. The record does delete from CloudKit when Device A deletes it (both on its private DB and on the shared DB of DeviceB). So it's not a relationship or restriction of any kind on CloudKit I don't believe.

Welcome any thoughts how to chase this one down. Been at this for a week.

This is the code I'm using to subscribe...


Here is the code I'm using to handle the notification and do the two operations above.




CKFetchRecordZoneChangesOperation not calling recordWithIDWasDeletedBlock on Shared Record Deletion
 
 
Q