diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
index 852064b750bafb6e33245b138aa225133ade03bd..e58e2efa3bad90bb37f95d26253fab62fc6279d9 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
@@ -67,18 +67,13 @@ public class SearchDirectoryServlet extends HttpServlet {
             else {
                 profiles = v.searchUserProfiles(req.getParameter("queryString"), "FULL_TEXT_NAME");
                 List<UserProfile> profiles2 = v.searchUserProfiles(req.getParameter("queryString"), "LOGON_NAME");
-                if (profiles != null) {
-                    for (Iterator<UserProfile> it = profiles.iterator(); it.hasNext(); ) {
-                        UserProfile p = it.next();
-                        for (UserProfile p2 : profiles2) {
-                            if (p2.equals(p))
-                                it.remove();
-                        }
+                for (Iterator<UserProfile> it = profiles.iterator(); it.hasNext(); ) {
+                    UserProfile p = it.next();
+                    for (UserProfile p2 : profiles2) {
+                        if (p2.equals(p))
+                            it.remove();
                     }
                 }
-
-                if (profiles == null)
-                    profiles = new ArrayList<>();
                 profiles.addAll(profiles2);
             }
 
@@ -122,7 +117,9 @@ public class SearchDirectoryServlet extends HttpServlet {
             }
             dataStore.updateUserProfile(profile);
         });
-
-        resp.getOutputStream().write(JsonStream.serialize(userProfiles).getBytes());
+        if (!userProfiles.isEmpty()) {
+            resp.getOutputStream().write(JsonStream.serialize(userProfiles).getBytes());
+            resp.setStatus(200);
+        } else resp.sendError(404, "No users were found!");
     }
 }
diff --git a/ldap-connector/src/main/java/net/jami/jams/ldap/connector/service/UserProfileService.java b/ldap-connector/src/main/java/net/jami/jams/ldap/connector/service/UserProfileService.java
index 553d7096db0bba69f564b2cb09e036eb068f1954..f3ea3fac1c434c7f018d792ce1ad9a39102d1546 100644
--- a/ldap-connector/src/main/java/net/jami/jams/ldap/connector/service/UserProfileService.java
+++ b/ldap-connector/src/main/java/net/jami/jams/ldap/connector/service/UserProfileService.java
@@ -32,6 +32,7 @@ import org.ldaptive.SearchOperation;
 import org.ldaptive.SearchRequest;
 import org.ldaptive.SearchResponse;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -55,7 +56,7 @@ public class UserProfileService {
                 connection.open();
                 SearchOperation search = new SearchOperation(connectionFactory);
                 SearchResponse res = search.execute(buildRequest(queryString,field, exactMatch));
-                if (res.getEntries().size() == 0) return null;
+                if (res.getEntries().size() == 0) return new ArrayList<>();
                 return res.getEntries().stream().map(UserProfileService::profileFromResponse).collect(Collectors.toList());
             } catch (Exception e) {
                 log.error("Could not search LDAP directory with error " + e.toString());