diff --git a/native/backup/use-client-backup.js b/native/backup/use-client-backup.js --- a/native/backup/use-client-backup.js +++ b/native/backup/use-client-backup.js @@ -9,6 +9,7 @@ import { fetchNativeKeychainCredentials } from '../account/native-credentials.js'; import { commCoreModule } from '../native-modules.js'; +import { persistConfig } from '../redux/persist.js'; import { useSelector } from '../redux/redux-utils.js'; type ClientBackup = { @@ -89,6 +90,11 @@ const backupSecret = await getBackupSecret(); await commCoreModule.restoreBackup(backupSecret); + const backupVersion = await commCoreModule.getSyncedDatabaseVersion(); + if (!backupVersion || parseInt(backupVersion) > persistConfig.version) { + throw new Error(`Incompatible backup version ${backupVersion ?? -1}`); + } + console.info('Backup restored.'); }, [currentUserID, loggedIn, setMockCommServicesAuthMetadata]);