Sync overwrote my local presets with an old version – data loss; please allow syncing to Google Drive / a custom folder

Describe the bug
After enabling BTT's built-in sync, my setup was rolled back to a much older state. All of my recent presets, triggers and changes were lost, and the old data replaced them with no warning and no confirmation dialog. This is serious data loss for me.

Steps to reproduce:

  1. Use BTT with a configuration that has been changed over a long time.
  2. Turn on sync.
  3. BTT overwrites the current local configuration with an older synced version.

Expected behavior:

  • Sync should never silently overwrite newer local data with older data. At minimum, show a conflict dialog (keep local / keep remote / merge) and make an automatic backup before any overwrite.

Requested feature:

  • Please let users choose the sync location, e.g. Google Drive, Dropbox, or any custom folder, instead of only the current sync method. That would let us control versioning and recover older copies ourselves.

Affected input device (e.g. MacBook Trackpad, Magic Mouse/Trackpad, Touch Bar, etc.):
Not device-specific (affects the whole configuration)

Screenshots
(none)

Device information:
Type of Mac: <e.g. MacBook Pro 14" M2>
macOS version: <e.g. 15.x>
BetterTouchTool version: <exact version, e.g. 5.xxx>

Additional information (e.g. crash logs, related issues, etc.):

  • Sync state: enabled just before the rollback.
  • I'm trying to recover from the local backups in ~/Library/Application Support/BetterTouchTool and from Time Machine. Any advice on recovering the overwritten data would be very appreciated.

You can try this:

Sync is very experimental, but unfortunately I won't be able to add support for other locations. It is using Apple's CloudKit Sync that only supports iCloud.

However turning on Sync forces you to save a full backup, if you still have that you can use it to restore the data.

//Edit: oh you are still on an old 5.xxx version? Then this mostly doesn't apply, sync has been completely rewritten in the recent versions. Restoring from backup might still work.