From ce0f466f01c4d832ca577aff3325d8d10bc2bb47 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Wed, 25 Jun 2025 12:32:57 +0200 Subject: [PATCH] Update DbService.cs (#957) --- .../AliasVault.Client/Services/Database/DbService.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/server/AliasVault.Client/Services/Database/DbService.cs b/apps/server/AliasVault.Client/Services/Database/DbService.cs index 8d80b2b5d..6fc54c5f6 100644 --- a/apps/server/AliasVault.Client/Services/Database/DbService.cs +++ b/apps/server/AliasVault.Client/Services/Database/DbService.cs @@ -726,8 +726,13 @@ public sealed class DbService : IDisposable } else if (vaultUpdateResponse.Status == VaultStatus.Outdated) { - // If the server responds with an outdated status, we need to fetch the latest vault from the server before we can continue. - return false; + // If the server responds with "outdated", it means we need to re-fetch the latest vault. + // Because of how the WASM client works now, it mutates the current database in memory so we need to + // merge the newly fetched database with the local database. For this we still need the + // merge databases logic. So for outdated responses, we still call the MergeDatabasesAsync() method. + // TODO: when changing datamodel and improving offline mode and batched mutations, update this logic and flow as well. + _state.UpdateState(DbServiceState.DatabaseStatus.MergeRequired); + return await MergeDatabasesAsync(); } _vaultRevisionNumber = vaultUpdateResponse.NewRevisionNumber;