diff --git a/src/jamidht/namedirectory.cpp b/src/jamidht/namedirectory.cpp
index a3c08d5353097d9953926a754e08312326c292c4..2e1e6eb753191a7070c35f245e65e751812c3046 100644
--- a/src/jamidht/namedirectory.cpp
+++ b/src/jamidht/namedirectory.cpp
@@ -191,7 +191,9 @@ NameDirectory::lookupAddress(const std::string& addr, LookupCallback cb)
                         cb(cacheResult.first, cacheResult.second, Response::found);
                     else
                         cb("", "", Response::notFound);
-                } else if (response.status_code != 200) {
+                } else if (response.status_code == 400)
+                    cb("", "", Response::invalidResponse);
+                else if (response.status_code != 200) {
                     JAMI_ERROR("Address lookup for {} on {} failed with code={}",
                                addr, serverUrl_, response.status_code);
                     cb("", "", Response::error);
@@ -274,6 +276,8 @@ NameDirectory::lookupName(const std::string& name, LookupCallback cb)
                                           const dht::http::Response& response) {
             if (response.status_code > 400 && response.status_code < 500)
                 cb("", "", Response::notFound);
+            else if (response.status_code == 400)
+                cb("", "", Response::invalidResponse);
             else if (response.status_code < 200 || response.status_code > 299) {
                 JAMI_ERROR("Name lookup for {} on {} failed with code={}",
                            name, serverUrl_, response.status_code);