diff --git a/src/Cache.cpp b/src/Cache.cpp index e12e9512..73459ba1 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp @@ -36,6 +36,7 @@ #include "UserSettingsPage.h" #include "Utils.h" #include "encryption/Olm.h" +#include //! Should be changed when a breaking change occurs in the cache format. //! This will reset client's data. @@ -2290,7 +2291,13 @@ try { } auto j = nlohmann::json(event); - accountDataDb.put(txn, j["type"].get(), j.dump()); + try { + accountDataDb.put(txn, j["type"].get(), j.dump()); + } catch (const lmdb::error &e) { + nhlog::db()->warn("failed to save state after sync: {}, skipping event", + e.what()); + return; + } }, ev); }