CloudKit query subscription does not fire notifications properly

Originator:sheng
Number:rdar://33848720 Date Originated:8/11/2017
Status:Open Resolved:
Product:CloudKit Product Version:10.12
Classification:Serious Bug Reproducible:Sometimes
 
Summary:
Sometimes a CKQuerySubscription won't fire even matching records are created, updated, or deleted. 

The subscription is a query subscription on the public database. I have a Xcode regression test case to verify notifications should be triggered by manipulating records from the CloudKit dashboard. The test usually passed, until someday suddenly the query subscription won't trigger any notifications.

+ Since record zone changes notification in private database fires properly, I think it has nothing to do with my entitlement file and notifications registering.
+ Since the query subscription did fire properly before, I think it is not directly caused by the subscription type. Even a TRUEPREDICATE can stop fire sometimes.

It is very easy for a query subscription to enter its non-functioning state. Although it works sometimes, given a container, I can usually reproduce the issue in less than 30 minutes.

Steps to Reproduce:
1. Save a query subscription.
2. Modify a record matching the predicate of the query subscription.

Expected Results:
Pushes followed by record modify operations from the logs in CloudKit dashboard.

Observed Results:
No push followed by record modify operations from the logs in CloudKit dashboard.

Version:
macOS 10.12

Notes:
This issue may be related to radar 30483448, 30003160, and 23804473.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!