diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index 61f9f450af022f15af86c77653c658cd90f67129..ee467cafd9a38029eaa561adcfc9c5021c6abd0c 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -1392,6 +1392,7 @@ RingAccount::migrateAccount(const std::string& pwd, dht::crypto::Identity& devic
     } catch (...) {
         RING_DBG("[Account %s] Can't load archive", getAccountID().c_str());
         Migration::setState(accountID_, Migration::State::INVALID);
+        setRegistrationState(RegistrationState::ERROR_NEED_MIGRATION);
         return;
     }
 
@@ -1439,6 +1440,7 @@ RingAccount::loadAccount(const std::string& archive_password, const std::string&
                     }
                     catch (...) {
                         Migration::setState(accountID_, Migration::State::INVALID);
+                        setRegistrationState(RegistrationState::ERROR_NEED_MIGRATION);
                         return;
                     }
                     Migration::setState(accountID_, Migration::State::SUCCESS);