#Apple #iCloud #CloudKit

When working on @tact, I have lately encountered several CloudKit bugs in the area of notifications and developer experience. So I thought I’ll just do an inventory of them in a thread.

All are also filed as Feedbacks to Apple. I usually don’t care about feedbacks any more, but sometimes I had good labs during WWDC based on feedbacks, so I mainly just filed them as labs homework.

FB22867206 Notification service entitlement request page not available

Notification service entitlements allow iOS Notification Service Extension to suppress displaying a received notification.

Info page: https://developer.apple.com/documentation/bundleresources/entitlements/com.apple.developer.usernotifications.filtering

The page redirects to this link: https://developer.apple.com/contact/request/notification-service which appears broken.

FB22866852: CloudKit sends duplicate CKDatabaseSubscription notifications for child record changes

I am seeing duplicate CloudKit database subscription push notifications for a single logical record creation. This happens in both private and shared databases.

This is sort of too involved to explain in a short post, so I created an example project which reliably reproduces the bug for me: https://github.com/jaanus/DoubleSharedDatabaseNotifications

GitHub - jaanus/DoubleSharedDatabaseNotifications: Toy CloudKit app to analyze a notifications bug

Toy CloudKit app to analyze a notifications bug. Contribute to jaanus/DoubleSharedDatabaseNotifications development by creating an account on GitHub.

GitHub

FB22867218: Unable to create CKQuerySubscription in shared CloudKit database

Observed: I cannot create CKQuerySubscription in shared CloudKit database.

Not having CKQuerySubscription available in shared database means I must rely on database change notifications in shared database to generate notifications, which are less accurate and sometimes generate me redundant notifications (FB22866852). I also cannot suppress the redundant notifications on the UI side (FB22867206).

FB22867222: Cannot access private or shared database in CloudKit console when developer account has Advanced Data Protection enabled

How to reproduce:

Enable Advanced Data Protection on the Apple account that you use for Apple development.

Go to CloudKit Console at https://icloud.developer.apple.com.

Try to access records in a private or shared database.

Expected: you can access records.

Observed: private and shared database display an error, “Failed to access iCloud data. Please sign in again.”

B22867235: Creating a production CloudKit subscription requires deploying schema changes

In development CloudKit environment, everything works fine. Then you put the same code live (e.g in TestFlight) and you suddenly get this error "Error saving record subscription with id PrivateReactions-v1 to server: attempting to create a subscription in a production container"

You must deploy new schema, even though there is nothing about subscriptions in schema deployment UI.
https://developer.apple.com/forums/thread/756547

Failed to create public DB CloudKi… | Apple Developer Forums

Also available in blog post form: https://blog.justtact.com/cloudkit-bugs/
CloudKit bugs as of May 2026

Tact previously transitioned to silent direct CloudKit notifications, but those proved to be unreliable for real-life use in an app like Tact. So we switched to direct visible CloudKit notifications, which do work, but have several bugs and behavioral oddities, especially as the bugs around them compound. This post is an inventory of currently open issues around Tact and CloudKit, especially in the area of notifications, as of May 2026.

Tact technology blog