Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

CKSyncEngine on macOS: Automatic Fetch Extremely Slow Compared to iOS

Hi everyone,

We’re currently using CKSyncEngine to sync all our locally persisted data across user devices (iOS and macOS) via iCloud.

We’ve noticed something strange and reproducible:

  • On iOS, when the CKSyncEngine is initialized with manual sync behavior, both manual calls to fetchChanges() and sendChanges() happen nearly instantly (usually within seconds). Automatic syncing is also very fast.
  • On macOS, when the CKSyncEngine is initialized with manual sync behavior, fetchChanges() and sendChanges() are also fast and responsive.
  • However, once CKSyncEngine is initialized with automatic syncing enabled on macOS:
    • sendChanges() still appears to transmit changes immediately.

    • But automatic fetching becomes significantly slower — often taking minutes to pick up changes from the cloud, even when new data is already available.

    • Even manual calls to fetchChanges() behave as if they’re throttled or delayed, rather than performing an immediate fetch.

Our questions:

  1. Is this delay in automatic (and post-automatic manual) fetch behavior on macOS expected, or possibly a bug?
  2. Are there specific macOS constraints that impact CKSyncEngine differently than on iOS?
  3. Once CKSyncEngine has been initialized in automatic mode, is fetchChanges() no longer treated as a truly manual trigger?
  4. Is there a recommended workaround to enable fast sync behavior on macOS — for example, by sticking to manual sync configuration and triggering sync using a CKSubscription-based mechanism when remote changes occur?

Any guidance, clarification, or experiences from other developers (or Apple engineers) would be greatly appreciated — especially regarding maintaining parity between iOS and macOS sync performance.

Thanks in advance!

CKSyncEngine on macOS: Automatic Fetch Extremely Slow Compared to iOS
 
 
Q