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 4aaef1cfe3f1ef5e5552849d2d68b771aaf90dc9..f2080882668fe0b60014fe1eef6e5cd3d72f3cdb 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
@@ -49,8 +49,6 @@ import java.util.stream.Collectors;
 @Slf4j
 public class UserProfileService {
 
-    private static final HashMap<String, String> fieldMap = ADConnector.settings.getFieldMappings();
-
     public List<UserProfile> getUserProfile(String queryString, String field,boolean exactMatch) {
         Endpoint endpoint = ADConnector.getConnection();
         try {
@@ -92,6 +90,7 @@ public class UserProfileService {
     }
 
     public static QueryRequest buildRequest(Endpoint endpoint) {
+        HashMap<String, String> fieldMap = ADConnector.settings.getFieldMappings();
         QueryRequest queryRequest = new QueryRequest();
         queryRequest.setDirectoryType(DirectoryType.MS_ACTIVE_DIRECTORY);
         queryRequest.setEndpoints(new ArrayList<>() {{
@@ -108,6 +107,8 @@ public class UserProfileService {
 
     public static UserProfile profileFromResponse(List<Field> fields) {
         //Use reflection to remap.
+        HashMap<String, String> fieldMap = ADConnector.settings.getFieldMappings();
+
         try {
             UserProfile userProfile = new UserProfile();
             for (Field field : fields) {
diff --git a/datastore/src/main/java/net/jami/datastore/dao/AbstractDao.java b/datastore/src/main/java/net/jami/datastore/dao/AbstractDao.java
index b5af7748e41a18e62574c293494a9739dcb62f80..9ca1769c68f5b69fee9a8d0bf43fa1d5525e966e 100644
--- a/datastore/src/main/java/net/jami/datastore/dao/AbstractDao.java
+++ b/datastore/src/main/java/net/jami/datastore/dao/AbstractDao.java
@@ -60,7 +60,7 @@ public abstract class AbstractDao<T> {
             return result;
         }
         catch (Exception e){
-            log.error("An error has occurred while trying to fetch a device: " + e.toString());
+            log.error("An error has occurred while trying to fetch an object: " + e.toString());
             return null;
         }
         finally {
diff --git a/datastore/src/main/java/net/jami/datastore/main/DataStore.java b/datastore/src/main/java/net/jami/datastore/main/DataStore.java
index f0a5cb48fba2ea99adebc5b1204140f629ac6999..4e1bdccb371a93572ae01a8bc728aa8ce45afcde 100644
--- a/datastore/src/main/java/net/jami/datastore/main/DataStore.java
+++ b/datastore/src/main/java/net/jami/datastore/main/DataStore.java
@@ -43,6 +43,7 @@ import net.jami.jams.common.objects.user.User;
 import net.jami.jams.common.objects.user.UserProfile;
 import org.flywaydb.core.Flyway;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Getter
@@ -106,6 +107,9 @@ public class DataStore implements AuthenticationSource {
         } else
             userList = userProfileDao.getObjects(null);
 
+        if (userList == null)
+            userList = new ArrayList<>();
+
         return userList;
     }
 
diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/responses/SubscriptionStatusResponse.java b/jams-common/src/main/java/net/jami/jams/common/objects/responses/SubscriptionStatusResponse.java
index 30e348945b58638acef32556c634883a1740e5ec..6274841f041d6df5fef2b75f7c4add1d796b312d 100644
--- a/jams-common/src/main/java/net/jami/jams/common/objects/responses/SubscriptionStatusResponse.java
+++ b/jams-common/src/main/java/net/jami/jams/common/objects/responses/SubscriptionStatusResponse.java
@@ -24,19 +24,12 @@ package net.jami.jams.common.objects.responses;
 
 import lombok.Getter;
 import lombok.Setter;
-import net.jami.jams.common.updater.FileDescription;
 import net.jami.jams.common.updater.subscription.LicenseInformation;
 
-import java.util.HashMap;
-
-import static net.jami.jams.common.utils.VersioningUtils.checkVersion;
-
 @Getter
 @Setter
 public class SubscriptionStatusResponse {
 
     private LicenseInformation licenseInformation;
     private Boolean activated;
-    private HashMap<String, FileDescription> versions = checkVersion(null);
-
 }
diff --git a/jams-common/src/main/java/net/jami/jams/common/utils/VersioningUtils.java b/jams-common/src/main/java/net/jami/jams/common/utils/VersioningUtils.java
index 133f95cb9ed722fa82b6b620e892951c436eff5f..ee6ab8ad1bea7164452a0e77e41ec3a71a7b20ff 100644
--- a/jams-common/src/main/java/net/jami/jams/common/utils/VersioningUtils.java
+++ b/jams-common/src/main/java/net/jami/jams/common/utils/VersioningUtils.java
@@ -34,45 +34,36 @@ import java.security.MessageDigest;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.jar.JarFile;
+import java.util.stream.Stream;
 
 @Slf4j
 public class VersioningUtils {
 
-    private static final String IMPLEMENTATION_VERSION_FIELD = "Implementation-Version";
-    private static final String MAIN_CLASS_FIELD = "Main-Class";
-    private static MessageDigest messageDigest;
-
-    static {
-        try {
-            messageDigest = MessageDigest.getInstance("MD5");
-        }
-        catch (Exception e){
-            messageDigest = null;
-        }
-    }
-
     public static HashMap<String, FileDescription> checkVersion(String baseLocation) {
         try {
+            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
             HashMap<String,FileDescription> res = new HashMap<>();
             ArrayList<Path> files = new ArrayList<>();
             if(baseLocation == null) baseLocation = System.getProperty("user.dir");
-            Files.walk(Paths.get(baseLocation)).filter(Files::isRegularFile).forEach(files::add);
-            files.forEach( e ->{
-                if(e.toString().endsWith(".jar")){
+            Stream<Path> stream = Files.walk(Paths.get(baseLocation));
+            stream.filter(Files::isRegularFile).forEach(files::add);
+            stream.close();
+            files.forEach( e -> {
+                String fileName = e.toString();
+                if (fileName.endsWith(".jar")) {
                     try {
                         JarFile file = new JarFile(e.toFile());
-                        String version = file.getManifest().getMainAttributes().getValue(IMPLEMENTATION_VERSION_FIELD);
-                        String className = file.getManifest().getMainAttributes().getValue(MAIN_CLASS_FIELD);
+                        String version = file.getManifest().getMainAttributes().getValue("Implementation-Version");
+                        String className = file.getManifest().getMainAttributes().getValue("Main-Class");
                         String md5 = Hex.toHexString(messageDigest.digest(Files.readAllBytes(e.toAbsolutePath())));
                         String[] arr = e.toString().split(File.separator);
-                        res.put(arr[arr.length - 1],new FileDescription(arr[arr.length - 1],version,md5,className));
-                        log.info("Found version {} of {}",version,e.toString());
-                    }
-                    catch (Exception e1){
-                        log.error("Could detect version for file with error {}",e1.getMessage());
+                        res.put(arr[arr.length - 1], new FileDescription(arr[arr.length - 1], version, md5, className));
+                        log.info("Found version {} of {}", version, fileName);
+                    } catch (Exception e1) {
+                        log.error("Could detect version for file with error {}", e1.getMessage());
                     }
                 }
-            } );
+            });
             return res;
         }
         catch (Exception e){
diff --git a/jams-launcher/src/main/resources/oem/config.json b/jams-launcher/src/main/resources/oem/config.json
index 38f19fa03ae297b2da6c142c89afbe85a41f5aae..6be3477e23e1cdb9c8edef464a305941be9cc325 100644
--- a/jams-launcher/src/main/resources/oem/config.json
+++ b/jams-launcher/src/main/resources/oem/config.json
@@ -1,4 +1,4 @@
 {
   "UPDATE_URL": "https://updates.jami.net",
-  "UPDATE_INTERVAL": 20000
+  "UPDATE_INTERVAL": 120000
 }
diff --git a/jams-react-client/src/auth.js b/jams-react-client/src/auth.js
index baa784b75532b19032954db64692e412172fcc82..217e576bb8527089069761a0c12c4d885b6a7860 100644
--- a/jams-react-client/src/auth.js
+++ b/jams-react-client/src/auth.js
@@ -158,7 +158,6 @@ class Auth {
     checkForUpdates(cb) {
         if (this.installed && this.authenticated) {
             axios(configApiCall(api_path_get_subscription_status, 'GET', null, null)).then((response) => {
-                this.localVersion = response.data['versions']['jams-server.jar']['version'];
                 this.activated = response.data['activated'];
                 cb()
             })
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/update/SubscriptionServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/update/SubscriptionServlet.java
index eabe92fe596b0d2c8932ce36197631b7c49b7e60..bed20b4a1c90452de9ea1f6d19c0579aae0db913 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/update/SubscriptionServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/update/SubscriptionServlet.java
@@ -51,6 +51,7 @@ public class SubscriptionServlet extends HttpServlet {
         subscriptionStatusResponse.setLicenseInformation(Server.licenseService.getLicenseInformation());
         subscriptionStatusResponse.setActivated(Server.activated.get());
         resp.getOutputStream().write(JsonStream.serialize(subscriptionStatusResponse).getBytes());
+        resp.getOutputStream().close();
     }
 
     //Upload the license here, which is really just uploading a base64 representation of the keypair - and store it
diff --git a/jams-server/src/main/java/net/jami/jams/server/update/JAMSUpdater.java b/jams-server/src/main/java/net/jami/jams/server/update/JAMSUpdater.java
index 1bba5c3fc1f3c8b5aab111a002dfe6af36e3f587..cae39d5ae38158b229493b0b21a0307910fa955c 100644
--- a/jams-server/src/main/java/net/jami/jams/server/update/JAMSUpdater.java
+++ b/jams-server/src/main/java/net/jami/jams/server/update/JAMSUpdater.java
@@ -29,7 +29,6 @@ import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 import net.jami.jams.common.updater.AppUpdater;
 import net.jami.jams.common.updater.FileDescription;
-import net.jami.jams.common.utils.VersioningUtils;
 import net.jami.jams.server.Server;
 
 import java.io.IOException;
@@ -76,7 +75,7 @@ public class JAMSUpdater implements AppUpdater {
 
     @Override
     public HashMap<String, FileDescription> getLocalVersions() {
-        return VersioningUtils.checkVersion(null);
+        return updateCheckTask.getLocalData();
     }
 
     @Override
diff --git a/jams-server/src/main/java/net/jami/jams/server/update/UpdateCheckTask.java b/jams-server/src/main/java/net/jami/jams/server/update/UpdateCheckTask.java
index 306fe0f19fec101bb05ebb4fcbc9bf882c6f7ffe..6fc231ebc4db6bc04db434c53206707d4fdb9772 100644
--- a/jams-server/src/main/java/net/jami/jams/server/update/UpdateCheckTask.java
+++ b/jams-server/src/main/java/net/jami/jams/server/update/UpdateCheckTask.java
@@ -51,7 +51,7 @@ import java.util.TimerTask;
 public class UpdateCheckTask extends TimerTask {
 
     private HashMap<String, FileDescription> remoteData = new HashMap<>();
-    private HashMap<String, FileDescription> localData;
+    private HashMap<String, FileDescription> localData = new HashMap<>();
     private SSLContext sslContext;
     private volatile KeyStore trustStore;
     protected static volatile String UPDATE_SERVER_URI;
@@ -89,7 +89,6 @@ public class UpdateCheckTask extends TimerTask {
                     JAMSUpdater.updateAvailable.set(true);
                 }
             });
-
         }
         catch (Exception e){
             log.error("Could not check for updates with error: {}",e.getMessage());
diff --git a/jams-server/src/main/resources/oem/config.json b/jams-server/src/main/resources/oem/config.json
index 38f19fa03ae297b2da6c142c89afbe85a41f5aae..6be3477e23e1cdb9c8edef464a305941be9cc325 100644
--- a/jams-server/src/main/resources/oem/config.json
+++ b/jams-server/src/main/resources/oem/config.json
@@ -1,4 +1,4 @@
 {
   "UPDATE_URL": "https://updates.jami.net",
-  "UPDATE_INTERVAL": 20000
+  "UPDATE_INTERVAL": 120000
 }
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 83beaca0c3d5ec02db479661816b9e1dbb820a41..29e026f063ca552d6fbe36f72a44be7fb93badc6 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
@@ -43,8 +43,6 @@ import static net.jami.jams.server.Server.dataStore;
 
 @Slf4j
 public class UserProfileService {
-
-    private static final HashMap<String,String> fieldMap = LDAPConnector.settings.getFieldMappings();
     private final ConnectionFactory connectionFactory;
 
     public UserProfileService(ConnectionFactory connectionFactory) {
@@ -112,6 +110,8 @@ public class UserProfileService {
 
     public static UserProfile profileFromResponse(LdapEntry entry){
         //Use reflection to remap.
+        HashMap<String,String> fieldMap = LDAPConnector.settings.getFieldMappings();
+
         try {
             UserProfile userProfile = new UserProfile();
             for (String attribute : entry.getAttributeNames()) {
@@ -123,7 +123,7 @@ public class UserProfileService {
             return userProfile;
         }
         catch (Exception e){
-            log.error("An error occured while trying to invoke methods: " + e.toString());
+            log.error("An error occurred while trying to invoke methods: " + e.toString());
             return null;
         }
     }