Bonjour supports shallow syncs but logically only on the same network.
Well yes, but the point of having it on the smartphone is to access it on the go, I feel.
I’d like to give somewhat positive update to the status of my troubleshooting. I had a free evening so I went after my hunch, backed everything up and then treated my system with thorough cleaning (cache deleting) with the help of the Onyx.app. I’m not proficient enough with OS X to that on my own, but seeing how OS X caches everything it does, I had suspicion that there may be a cache used for CloudKit sync and that it might have got corrupted in my system.
Turns out I must have been onto something- since the cleaning I had no single CKError message. I’m still getting the “manifest missing” errors from time to time, but no connection problems whatsoever.
Besides deleting caches, old logs and such, onyx purges system snapshots, unused hidden files and repairs the file system and access privileges. In other words, it might have been a problem with filesystem or access privileges of some files rather than a corrupted cache…
Either way, it may be worth taking a look into local resources used in the process of iCloudKit sync. Perhaps there are some precautions the developers can take, so that the corrupted system files do not prevent the sync from working?
See iCloud sync issues widespread - #4 by SlickSlack
Apple iCloud synching is under control of Apple. Could be what you discovered is hampering Apple’s service, but difficult to know. Perhaps you can report this to Apple to assist in their debugging (should they be doing anything).
That’s actually intentional. That way the worst thing that should happen is that the sync stops working if the data is incomplete, inconsistent or corrupted.
Perhaps I should’ve phrase it differently. What I mean is, perhaps it is possible to put in some safechecks to verify the state of the relevant system resources when the sync goes wrong.
But I understand the argument it is on Apple to make the service they sell work.
The sync performs all kinds of checks & retries already. But if the cloud servers do not respond or lose/corrupt data on their own then that’s nothing we can control or prevent.
I have a follow up question related to the issue.
I found threads stating there is no problem in having multiple sync locations set up… but is it possible to prioritize them? I’d like my iOS devices to use Bonjour sync when available, as it is much faster, but revert to iCloud sync in other situations. Right now it seems DTTG is prioritizing iCloud sync over Bonjour and I have to disable it manually to get the other going.
I do not know a way to prioritise. I either just let it rip if turned on when in the local network (usually) or just turn off third party sync on DEVONthink ToGo when not out and about.
Internally faster sync locations have a higher priority (e.g. when downloading on demand) but the last date of the synchronization matters of course too.