diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index 737e0a2d90e87c4341d2bededb3d289815df8323..a83609d1ddb70c7da5927a4b4594ec41ebf6a89f 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -1056,11 +1056,10 @@ JamiAccount::loadAccount(const std::string& archive_password, const std::string&
             }, [this](AccountManager::AuthError error, const std::string& message)
             {
                 JAMI_WARN("Auth error: %d %s", (int)error, message.c_str());
-                {
-                    std::lock_guard<std::mutex> lock(configurationMutex_);
-                    setRegistrationState(RegistrationState::ERROR_GENERIC);
-                }
-                Manager::instance().removeAccount(getAccountID());
+                setRegistrationState(RegistrationState::ERROR_GENERIC);
+                runOnMainThread([w = weak()] {
+                    Manager::instance().removeAccount(w.lock()->getAccountID());
+                });
             }, std::move(callbacks));
         }
     }