Your Files & Sync
When two devices edit at once (conflicts & merging)
Merging and conflict copies keep the work of both devices when they disagree. Cloud services decide the timing, so a few limits remain.
More in Your Files & Sync
Concurrent changes
Every save records which earlier saves it is built on. A version that was built on this device’s latest state is simply taken over. A version written without seeing it, for example because the other device was offline or received this device’s changes late, is merged item by item with this device’s state, against the last version both devices had seen. That holds even when it carries the higher version number, and even when this device has no unsaved changes, so work that only this device had already received is kept too. A note edited on one device and an image added on the other both survive. If the same text or other content changed on both sides, your version stays in place and the other one appears next to it as a visible conflict copy, once, even when several devices resolve the same conflict. After a very long time apart (roughly a hundred sessions on one device without the two meeting), visualOS can no longer tell which version saw the other: then every note that differs keeps both versions, one in place and the other as a conflict copy. If both devices moved or resized the same element, one of the two layouts is kept. An element deleted on one device but edited on the other is kept: a deletion can simply be repeated, a lost edit cannot.
Conflict files from your cloud service
If two devices save at almost the same moment, iCloud, Dropbox, Google Drive or OneDrive may create a duplicate such as canvas-data 2.json or canvas-data (conflicted copy).json. If it belongs to this workspace, visualOS keeps a backup of it, merges its changes back in and then removes the duplicate. A short message tells you when that happens. Files it cannot place, such as a copy of another workspace or an old copy, are left untouched. Keep your own copies of canvas-data.json outside the connected folder all the same.
Occasionally a cloud service replaces the file without leaving a duplicate. When all devices run the current version, the device whose latest edits are missing from the new file notices this and merges them back in the next time it syncs. Until then their content can usually also be found in Versions: in canvas-data.conflict-….json files, which stay until you delete them, or in the automatic snapshots, which keep the newest 30. Letting each device finish its folder save before you switch makes this rare.
Older app versions
Devices that have not been updated still read and write the same workspace file, but without the newer safeguards. Once such a device has loaded a version saved by an updated one, its saves still show which version they are built on, and visualOS applies their changes on top of it: edits, renames and moves arrive as made, without conflict copies. Their version number never overwrites anything. A note missing from such a save stays, because an older device can leave out notes it never meant to delete, so a note deleted on a device that has not been updated can come back. When the version cannot be told, for example on a device that has loaded nothing from an updated one yet, a note changed on both kinds of device also appears next to it as a conflict copy. The older device itself still follows the old rules and can overwrite shared state before it has seen it. Update all devices for the most reliable merging.
Reviewing a conflict
Compare both versions before removing one. Check Versions for earlier states.
Reduce avoidable conflicts
Before switching devices, let the app finish its folder save and check cloud transfer status. Keep files available offline where supported. All devices do not need to stay open, and sync is not realtime co-editing.