diff --git a/jams-server/src/main/java/net/jami/jams/server/update/UpdateDownloader.java b/jams-server/src/main/java/net/jami/jams/server/update/UpdateDownloader.java
index c4ae6ce6b95c2b2da033e92a0c41b883af0cd116..5021bff8a50701978e1bc259e3c868bc2b03e8bf 100644
--- a/jams-server/src/main/java/net/jami/jams/server/update/UpdateDownloader.java
+++ b/jams-server/src/main/java/net/jami/jams/server/update/UpdateDownloader.java
@@ -103,14 +103,27 @@ public class UpdateDownloader {
 
         // temp folder for safe download and integrity check
         File tmpFolder = new File(System.getProperty("user.dir") + "/tmp/");
-        if(!tmpFolder.mkdirs()){
-            log.error("Could not create temporary folder to store the update files!");
-            return false;
-        }
 
+        if(!tmpFolder.exists()){
+            try {
+                tmpFolder.mkdirs();
+            } catch (Exception e) {
+                log.error("Error creating folder:" + e);
+                return false;
+            }
+        }
 
         files.forEach((k, v) -> {
             try {
+                File tmpFile = new File( System.getProperty("user.dir") + "/tmp/" + v.getFileName());
+                if(tmpFile.exists()){
+
+                    try{
+                        tmpFile.delete();
+                    } catch (Exception e) {
+                        log.warn("Error deleting file: " + v.getFileName() + " with error " + e);
+                    }
+                }
                 HttpClient httpClient = HttpClients.custom().setSSLContext(sslContext).build();
                 HttpResponse httpResponse = httpClient.execute(new HttpGet(UPDATE_SERVER_URL + "/updates/" + v.getFileName()));
                 if (httpResponse.getStatusLine().getStatusCode() != 200) return;