diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index abd4bea70b876138ac1ff7fbe4f7fd530bb1b274..ffa70f13eb03aa96d7226e3b2802e824afce3067 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -904,7 +904,13 @@ RingAccount::readArchive(const std::string& pwd) const
     std::vector<uint8_t> file = fileutils::loadFile(archivePath_);
 
     // Decrypt
-    file = dht::crypto::aesDecrypt(file, pwd);
+    try {
+        file = dht::crypto::aesDecrypt(file, pwd);
+    }
+    catch (const std::exception& e) {
+        RING_ERR("Error decrypting archive: %s", e.what());
+        return RingAccount::ArchiveContent();
+    }
 
     // Load
     return loadArchive(file);