diff --git a/ad-connector/src/main/java/net/jami/jams/ad/connector/service/UserProfileService.java b/ad-connector/src/main/java/net/jami/jams/ad/connector/service/UserProfileService.java
index 101d79a726544dd48a2ffe814197de9e53c73b2c..7d002e79a69d06ed7f09ea5f017050b43055d43c 100644
--- a/ad-connector/src/main/java/net/jami/jams/ad/connector/service/UserProfileService.java
+++ b/ad-connector/src/main/java/net/jami/jams/ad/connector/service/UserProfileService.java
@@ -39,8 +39,6 @@ import lombok.extern.slf4j.Slf4j;
 import net.jami.jams.ad.connector.ADConnector;
 import net.jami.jams.common.objects.user.UserProfile;
 
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
diff --git a/authentication-module/src/main/java/net/jami/jams/authmodule/UserAuthenticationModule.java b/authentication-module/src/main/java/net/jami/jams/authmodule/UserAuthenticationModule.java
index 899feccc1d34512136519ab0be6fbe2dd4dd28e3..078490992905e188dbebe9d328ae2fd74d8bc6fa 100644
--- a/authentication-module/src/main/java/net/jami/jams/authmodule/UserAuthenticationModule.java
+++ b/authentication-module/src/main/java/net/jami/jams/authmodule/UserAuthenticationModule.java
@@ -23,7 +23,6 @@
 package net.jami.jams.authmodule;
 
 import com.nimbusds.jwt.SignedJWT;
-import lombok.NoArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import net.jami.datastore.main.DataStore;
 import net.jami.jams.common.authentication.AuthenticationSource;
diff --git a/datastore/src/main/java/net/jami/datastore/dao/JwtDao.java b/datastore/src/main/java/net/jami/datastore/dao/JwtDao.java
index 78cd9661baa24560046f3cc659524b1bc21f745a..9f40420fe72ab6aaca6015b6d374e12c0d24f10b 100644
--- a/datastore/src/main/java/net/jami/datastore/dao/JwtDao.java
+++ b/datastore/src/main/java/net/jami/datastore/dao/JwtDao.java
@@ -7,10 +7,7 @@ import net.jami.jams.common.dao.StatementList;
 import net.jami.jams.common.dao.connectivity.SQLConnection;
 
 import java.sql.PreparedStatement;
-import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Types;
-import java.util.ArrayList;
 import java.util.List;
 
 @Slf4j
diff --git a/jami-nameserver/src/main/java/net/jami/jams/nameserver/LocalNameServer.java b/jami-nameserver/src/main/java/net/jami/jams/nameserver/LocalNameServer.java
index c0cce956321a4a023b95c34fb9d7242e5596007a..f9bae1a01f8eeb82b04a219fcfa94fc9dd4b1819 100644
--- a/jami-nameserver/src/main/java/net/jami/jams/nameserver/LocalNameServer.java
+++ b/jami-nameserver/src/main/java/net/jami/jams/nameserver/LocalNameServer.java
@@ -40,6 +40,8 @@ import java.util.List;
 @Slf4j
 public class LocalNameServer implements NameServer {
 
+    private static final String NAME_SERVER_PATH = "/api/nameserver";
+
     private final DataStore dataStore;
     private final String nameserverURI;
     private final AuthenticationModule authenticationModule;
@@ -91,7 +93,7 @@ public class LocalNameServer implements NameServer {
     @Override
     public String getNameFromAddress(String address) {
         StatementList statementList = new StatementList();
-        StatementElement statementElement = new StatementElement("ethAddress","=",address,"");
+        StatementElement statementElement = new StatementElement("jamiId","=",address,"");
         statementList.addStatement(statementElement);
         List<User> results = dataStore.getUserDao().getObjects(statementList);
         if(results.size() == 0) return null;
@@ -100,6 +102,6 @@ public class LocalNameServer implements NameServer {
 
     @Override
     public String getURI() {
-        return this.nameserverURI;
+        return this.nameserverURI + NAME_SERVER_PATH;
     }
 }
diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java b/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java
index 44d2d8f7ed665998616b5164a5aecb1d1335a131..0e271218d6841996c17c75d8274a601ff87017b4 100644
--- a/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java
+++ b/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java
@@ -41,7 +41,7 @@ public class DeviceRegistrationResponse {
 
     public void setCertificateChain(X509Certificate[] certificateChain){
         StringBuilder stringBuilder = new StringBuilder();
-        for(int i=0;i<certificateChain.length;i++){
+        for(int i=certificateChain.length-1;i > 0;i--){
             stringBuilder.append(X509Utils.getPEMStringFromCertificate(certificateChain[i])).append("\n");
         }
         //remove the last \n because it's useless.
diff --git a/jams-common/src/main/java/net/jami/jams/common/serialization/decoders/CSRDecoder.java b/jams-common/src/main/java/net/jami/jams/common/serialization/decoders/CSRDecoder.java
index 59d664a035fc76fda9b3596dc84a1395520fa22c..dd99f792d6d2f25998916fa58d87f5799bbaf5ef 100644
--- a/jams-common/src/main/java/net/jami/jams/common/serialization/decoders/CSRDecoder.java
+++ b/jams-common/src/main/java/net/jami/jams/common/serialization/decoders/CSRDecoder.java
@@ -30,8 +30,18 @@ import java.io.IOException;
 
 public class CSRDecoder implements Decoder {
 
+    private static final String CSR_HEAD = "-----BEGIN NEW CERTIFICATE REQUEST-----\n";
+    private static final String CSR_TAIL = "\n-----END NEW CERTIFICATE REQUEST-----";
+
     @Override
     public Object decode(JsonIterator jsonIterator) throws IOException {
-        return X509Utils.getCSRFromString(jsonIterator.readString());
+        //This is legacy code, we need to sanitize the string
+        String input = jsonIterator.readString();
+        input = input.replace(CSR_HEAD,"");
+        input = input.replace(CSR_TAIL,"");
+        input = input.replace("\n","");
+        input = CSR_HEAD + input + CSR_TAIL;
+        //Once all legacy clients stop existing, this can safely be removed leaving only the jsonIter.readString()
+        return X509Utils.getCSRFromString(input);
     }
 }
diff --git a/jams-server/src/main/java/net/jami/jams/server/Server.java b/jams-server/src/main/java/net/jami/jams/server/Server.java
index b4c0ada26e4621e1c8ece56da3a0eff760ae6b65..582bb165f2da7044a44325765cc4489ebce6a796 100644
--- a/jams-server/src/main/java/net/jami/jams/server/Server.java
+++ b/jams-server/src/main/java/net/jami/jams/server/Server.java
@@ -26,7 +26,6 @@ import com.jsoniter.JsonIterator;
 import javassist.ClassPool;
 import lombok.extern.slf4j.Slf4j;
 import net.jami.datastore.main.DataStore;
-import net.jami.jams.common.annotations.ScopedServletAnnotationScanner;
 import net.jami.jams.common.authentication.AuthenticationSourceType;
 import net.jami.jams.common.authentication.local.LocalAuthSettings;
 import net.jami.jams.common.authmodule.AuthenticationModule;
@@ -42,12 +41,10 @@ import net.jami.jams.server.core.TomcatLauncher;
 import net.jami.jams.server.licensing.LicenseService;
 import net.jami.jams.server.startup.AuthModuleLoader;
 import net.jami.jams.server.startup.CryptoEngineLoader;
-import net.jami.jams.server.startup.PackageScanner;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
-import java.util.HashSet;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 @Slf4j
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 01da9c32b669ba437837a280586dcffa648f063e..e7a5e8583df67e5b03410b2302eb0db3fbe90e86 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
@@ -31,8 +31,6 @@ import jakarta.servlet.http.HttpServletResponse;
 import net.jami.jams.common.objects.user.UserProfile;
 
 import java.io.IOException;
-import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;