Looks like the CloudKit sync issue in *OS 26.4 is real (I can repro with all of my apps), and has the very distinct potential to lead to catastrophic data loss and/or sync conflicts across effectively all apps. Apps only receive changes from the cloud after being quit and relaunched.

If Apple hasn't pulled 26.4 already, it should do so immediately until there's a fixed build

https://mastodon.social/@lukaskubanek/116299581006179836

@stroughtonsmith @lukaskubanek It’s fixed in iOS 26.5 beta as per our internal testing with our apps, FYI.
@gedeonm @stroughtonsmith @lukaskubanek Do Apple’s automatic CloudKit integration APIs really only rely on those notifications? I have one app with my own CloudKit sync, and two with my own CKSyncEngine implementations, but all have a polling component, and hooks in things like didBecomeActive as a back stop, so it’s not ideal, but not tragic, if the notifications don’t come.

@agiletortoise @gedeonm @stroughtonsmith There is a polling component, `CKSyncEngine.fetchChanges(…)`, but I’ve had mixed results with it, same as the @pointfreeco folks in their SQLiteData library, which is based on CKSyncEngine: https://github.com/pointfreeco/sqlite-data/discussions/308#discussioncomment-15075494

My understanding is that it relies on remote notifications to work, which is also confirmed in Apple’s sample app README: https://github.com/apple/sample-cloudkit-sync-engine#prerequisites

About SyncEngine.fetchChanges() behavior on macOS · pointfreeco sqlite-data · Discussion #308

Hi, i tried to use syncEngine.fetchChanges() to control changes pulling, it seems does nothing on macOS. The log of that is like this, but it does not really pull the changes: SQLiteData (shared.db...

GitHub