diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index 81731afff9195983b005546980b8635e5e4d10f8..93afdd75b404f63bb3fecbe9400a38033fc5e6e1 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -1000,6 +1000,10 @@ RingAccount::changeArchivePassword(const std::string& password_old, const std::s
         archiveHasPassword_ = not password_new.empty();
     } catch (const std::exception& ex) {
         JAMI_ERR("[Account %s] Can't change archive password: %s", getAccountID().c_str(), ex.what());
+        if (password_old.empty()) {
+            archiveHasPassword_ = true;
+            emitSignal<DRing::ConfigurationSignal::AccountDetailsChanged>(getAccountID(), getAccountDetails());
+        }
         return false;
     }
     if (password_old != password_new)