diff --git a/src/jamidht/conversationrepository.cpp b/src/jamidht/conversationrepository.cpp
index ab394805149287f7d254679891516756d79fe781..899d574cd88fa91059219c7f6637720c54be6973 100644
--- a/src/jamidht/conversationrepository.cpp
+++ b/src/jamidht/conversationrepository.cpp
@@ -189,12 +189,17 @@ public:
 
     std::map<std::string, std::vector<DeviceId>> devices() const
     {
+        auto repo = repository();
+        if (!repo)
+            return {};
         std::map<std::string, std::vector<DeviceId>> memberDevices;
         std::string deviceDir = fmt::format("{}devices/",
-                                            git_repository_workdir(repository().get()));
+                                            git_repository_workdir(repo.get()));
         for (const auto& file : fileutils::readDirectory(deviceDir)) {
             auto cert = std::make_shared<dht::crypto::Certificate>(
                 fileutils::loadFile(deviceDir + file));
+            if (!cert)
+                continue;
             memberDevices[cert->getIssuerUID()].emplace_back(cert->getPublicKey().getLongId());
         }
         return memberDevices;