In fairness don't you always have to prepare for your user’s device to be unable to sync with the cloud? I wonder if apple imposed this limitation just to force developers to consider it even in the best of conditions.
It's not so much that you have to prepare for network problems; it's that Apple doesn't tell you if the local key/value store EVER synced. If it synced but there was no difference between the local and remote store, you don't even get confirmation that yep, we're all good to go.
At least that's how it was the last time I used it.
This year, they've _finally_ introduced a higher-level API that does what you're describing, but it's still in beta: https://developer.apple.com/documentation/cloudkit/cksynceng...