diff --git a/jams-react-client/package.json b/jams-react-client/package.json
index 92b53ab010f003ddb6e251a89c2b636e7e84e774..c8f13356ea0c6d844742353792a895c93f02dd2f 100644
--- a/jams-react-client/package.json
+++ b/jams-react-client/package.json
@@ -15,6 +15,7 @@
     "history": "4.10.1",
     "image-to-base64": "^2.1.1",
     "material-ui-popup-state": "^1.6.1",
+    "package.json": "^2.0.1",
     "perfect-scrollbar": "1.5.0",
     "prop-types": "15.7.2",
     "react": "16.13.1",
diff --git a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
index af62ea4cdc7cc96e32828fa466c8dcf97f7adcb5..3c1f94a6fe608626b776fd61b78350d97e8b04bd 100644
--- a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
+++ b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
@@ -259,8 +259,8 @@ export default function EditCreateUserProfile(props) {
             "username": input
         }
         axios(configApiCall(api_path_get_exists_user, 'GET', data, null)).then((response) =>{
-            if(response.data == "[]"){
-                setUserExists(true)
+            if(response.status == 200){
+                setUserExists(false)
             }
         }).catch((error) => {
             console.log("Error checking for existing users: " + error)
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java
index 8b5f3b6a7698fcd1ca583c32037f329ada07d85e..7974a9d32368561952fbbc8a8c73e35d2833b130 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java
@@ -50,7 +50,7 @@ import static net.jami.jams.server.Server.userAuthenticationModule;
 @WebServlet("/api/admin/user")
 public class UserServlet extends HttpServlet {
 
-    //Get the user profile.
+    //Get the user
     @Override
     @ScopedServletMethod(securityGroups = {AccessLevel.ADMIN})
     @JsonContent
@@ -58,27 +58,32 @@ public class UserServlet extends HttpServlet {
         StatementList statementList = new StatementList();
         StatementElement st1 = new StatementElement("username","=",req.getParameter("username"),"");
         statementList.addStatement(st1);
-        User user = dataStore.getUserDao().getObjects(statementList).get(0);
-        if(certificateAuthority.getLatestCRL().get() != null) {
-            user.setRevoked(certificateAuthority.getLatestCRL().get().getRevokedCertificate(user.getCertificate().getSerialNumber()) != null);
-        }
-        else user.setRevoked(false);
 
-        if (!user.getNeedsPasswordReset() && req.getParameter("needPW") != null) {
-            String password = PasswordGenerator.generatePassword();
-            StatementList update = new StatementList();
-            StatementElement st0 = new StatementElement("password","=",password,"");
-            update.addStatement(st0);
-            StatementList constraint = new StatementList();
-            StatementElement st = new StatementElement("username","=",req.getParameter("username"),"");
-            constraint.addStatement(st);
-            StatementElement st2 = new StatementElement("needsPasswordReset","=","true","");
-            update.addStatement(st2);
-            // refresh variable
-            dataStore.getUserDao().updateObject(update,constraint);
-            user = dataStore.getUserDao().getObjects(statementList).get(0);
+        if (!dataStore.getUserDao().getObjects(statementList).isEmpty()) {
+            User user = dataStore.getUserDao().getObjects(statementList).get(0);
+            if (certificateAuthority.getLatestCRL().get() != null)
+                user.setRevoked(certificateAuthority.getLatestCRL().get().getRevokedCertificate(user.getCertificate().getSerialNumber()) != null);
+            else user.setRevoked(false);
+
+            if (!user.getNeedsPasswordReset() && req.getParameter("needPW") != null) {
+                String password = PasswordGenerator.generatePassword();
+                StatementList update = new StatementList();
+                StatementElement st0 = new StatementElement("password", "=", password, "");
+                update.addStatement(st0);
+                StatementList constraint = new StatementList();
+                StatementElement st = new StatementElement("username", "=", req.getParameter("username"), "");
+                constraint.addStatement(st);
+                StatementElement st2 = new StatementElement("needsPasswordReset", "=", "true", "");
+                update.addStatement(st2);
+                // refresh variable
+                dataStore.getUserDao().updateObject(update, constraint);
+                user = dataStore.getUserDao().getObjects(statementList).get(0);
+            }
+            resp.getOutputStream().write(JsonStream.serialize(user).getBytes());
+            resp.setStatus(200);
+        } else {
+            resp.sendError(404, "Could not obtain user!");
         }
-        resp.getOutputStream().write(JsonStream.serialize(user).getBytes());
     }
 
     //Create an internal user - this is always technically available, because internal users have the right to exist.
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/user/UserServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/user/UserServlet.java
index dfc1a9fcde91000b5bea1677aa4a9875de58e8d9..39baf1f0d9b04653298a4c892334db2dc3b0b7a5 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/user/UserServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/user/UserServlet.java
@@ -75,12 +75,16 @@ public class UserServlet extends HttpServlet {
         StatementList statementList = new StatementList();
         StatementElement st = new StatementElement("username","=",req.getAttribute("username").toString(),"");
         statementList.addStatement(st);
-        User user = dataStore.getUserDao().getObjects(statementList).get(0);
-        if(certificateAuthority.getLatestCRL().get() != null) {
-            user.setRevoked(certificateAuthority.getLatestCRL().get().getRevokedCertificate(user.getCertificate().getSerialNumber()) != null);
+        if (!dataStore.getUserDao().getObjects(statementList).isEmpty()) {
+            User user = dataStore.getUserDao().getObjects(statementList).get(0);
+            if(certificateAuthority.getLatestCRL().get() != null) {
+                user.setRevoked(certificateAuthority.getLatestCRL().get().getRevokedCertificate(user.getCertificate().getSerialNumber()) != null);
+            }
+            else user.setRevoked(false);
+            resp.setStatus(200);
+            resp.getOutputStream().write(JsonStream.serialize(user).getBytes());
         }
-        else user.setRevoked(false);
-        resp.getOutputStream().write(JsonStream.serialize(user).getBytes());
+        resp.sendError(404, "User was not found!");
     }
 
     //The user can update 3 fields: password,privatekey,publickey