Can you rely on iWork apps sharing versions in iCloud Drive?

I have returned to the issue of working with iWork documents shared over iCloud Drive, specifically that of access to their previous versions using the Revert To / Browse All Versions… menu command. Previously I had reported that this feature, although present and recently documented by Apple in this Support Note, is currently buggy and unreliable. My aim here is to discover whether there are workarounds or mitigations.

To keep this simple, I have tested this feature again on two Macs, both running macOS 10.14 Mojave and the current version (7.2 5869) of Pages, connected to the same iCloud account. The bottom line is that access to previous versions of a document can be reliable, provided that you’re careful and have good iCloud connectivity. The further that your situation strays from this, the less reliable the versions feature becomes.

My stress test was to create a lot of small changes to a longer Pages document, saving a new version every few seconds. I started doing this on my iMac, working on a document saved to the Pages folder in iCloud Drive. I added the numerals 1 to 9 successively, saving the document each time to generate a new version. I then closed the document there, opened it on my MacBook Pro, and repeated this process to take the numerals up to 20.

versionp01

At the end of this, the most recent version on the MacBook Pro showed the document correctly edited, and each version back to 10 was also available. Some of those more recent versions (added on the MBP) had additional iCloud-based duplicates too. Versions which had been saved when editing the document on the iMac were more patchy, though, and incomplete.

versionp02

However, on the iMac, which had complete (and partially duplicated) earlier versions, those from 10 onwards became patchy. The latest version available stopped at 18 rather than 20, and that immediately before was 12 rather than 17.

versionp03

The picture was more confusing when examined in Revisionist, having ensured that each Macs had downloaded all available versions from iCloud.

versionp04

On the MacBook Pro, there was a total of 19 accessible versions plus the current one. Only 6 were from versions prior to 10, and the remainder consisted of later versions which had been created on that Mac, with some duplicates. The current version, for example, had an identical copy which was listed as version number 16, and versions 17-19 were actually earlier versions which had been downloaded from iCloud.

versionp05

On the iMac, there was a total of 18 accessible versions plus the current one (which matched that current on the MacBook Pro). Of those, 16 were from versions prior to 10, which had been created on that iMac, but only 2 were from subsequent edits on the MacBook Pro. The most recently-added version (18) was actually the very first, with no numerals at the end of the document at all.

On the face of it, these versions would be unusable.

I then repeated this process, but watching for iCloud’s circular progress icon in the Finder, ensuring that each save and its new version was allowed to sync properly with iCloud before proceeding. No versions were lost on either Mac, although duplicates were still created on the Mac which had performed that particular edit and save.

There appear to be two distinct issues causing these problems: the need to sync new versions, and duplication occurring between local and iCloud versions.

Ordinarily, with asynchronous tasks such as saving a new version of a document to cloud storage, each task would be added to a queue, and the syncs in that queue performed in sequence until the queue becomes empty. This doesn’t appear to happen when saving versions to iCloud Drive: if the next version is ready to sync, then prior version syncs for that document are cancelled or lost. If you overload the sync process, then only the last sync is performed, and versions which should have been ahead of it in the queue are never synchronised, and appear lost to other systems sharing that account. They are, though, still stored in the local versions database.

In more normal use, the user shouldn’t be generating a new version every few seconds, and there should be ample time for a new version to sync to iCloud before the next version is created. The two factors which will determine this are the size of the version to be saved to iCloud, and performance of its connection.

In the case of large documents and slow syncing with iCloud, even versions made every five minutes may prove too frequent, and result in lost versions. Users should therefore only rely on sharing versions via iCloud Drive when they have good syncing with iCloud relative to the size of the document. If the iCloud progress circle still hasn’t completed on the last version sync, then a new version isn’t likely to be accessible to other systems connecting to that account.

Duplication of versions held in iCloud and locally is outwith the control of the user. Given the potential to lose versions in iCloud, it would be most unwise to try deleting those held locally, and this may be why Apple has left this behaviour active.

Users cannot (ordinarily) turn versions off in Apple’s iWork apps, nor can they stop the versioning system locally, or that in iCloud. Perhaps the best strategy is to see this as an added bonus, on which you cannot rely, nor can you disable or remove. Apple needs to address these issues if it intends users to edit iWork documents shared in iCloud Drive.