diff --git a/native/cpp/CommonCpp/DatabaseManagers/DatabaseManager.cpp b/native/cpp/CommonCpp/DatabaseManagers/DatabaseManager.cpp --- a/native/cpp/CommonCpp/DatabaseManagers/DatabaseManager.cpp +++ b/native/cpp/CommonCpp/DatabaseManagers/DatabaseManager.cpp @@ -46,7 +46,24 @@ DatabaseManager::getQueryExecutor(DatabaseIdentifier id) { if (id == DatabaseIdentifier::RESTORED) { if (!DatabaseManager::restoredConnectionManager) { - throw std::runtime_error("restoredConnectionManager is not set"); + folly::Optional mainCompactionPath = + CommSecureStore::get(CommSecureStore::restoredBackupPath); + folly::Optional mainCompactionEncryptionKey = + CommSecureStore::get(CommSecureStore::restoredBackupDataKey); + + if (!mainCompactionPath.has_value() || + !mainCompactionEncryptionKey.has_value()) { + throw std::runtime_error("restoredConnectionManager is not set"); + } + + SQLiteBackup::validateMainCompaction( + mainCompactionPath.value(), mainCompactionEncryptionKey.value()); + + DatabaseManager::restoredConnectionManager = + std::make_shared( + mainCompactionPath.value(), + mainCompactionEncryptionKey.value(), + ""); } thread_local SQLiteQueryExecutor restoredQueryExecutor(