diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index cfdd69c642c9e33df4352a2ce69675de489d7bb2..7c5ee468d08f479697462faff3d46028b3477c7a 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -1432,7 +1432,8 @@ RingAccount::loadAccount(const std::string& archive_password, const std::string&
         auto id = loadIdentity(tlsCertificateFile_, tlsPrivateKeyFile_, tlsPassword_);
         bool hasValidId = useIdentity(id);
         bool needMigration = hasValidId and needsMigration(id);
-        bool hasArchive = not archivePath_.empty() and fileutils::isFile(archivePath_);
+        bool hasArchive = not archivePath_.empty()                      \
+            and fileutils::isFile(fileutils::getFullPath(idPath_, archivePath_));
 
         if (hasValidId) {
             loadKnownDevices();