diff --git a/javascript/src/utilities/appUtility.js b/javascript/src/utilities/appUtility.js
index 6529baafa016614ff9254af6aa2a8d265caab0f6..867369bb343e435f89ca41cf05772675f9bad687 100644
--- a/javascript/src/utilities/appUtility.js
+++ b/javascript/src/utilities/appUtility.js
@@ -84,9 +84,9 @@ export function destroyIdentityFromLocalStorage(key) {
   localStorage.removeItem("colors/" + key);
   localStorage.removeItem("blockFinishTime");
 
-  let serializedIdentitiesList = localStorage.getItem("identities");
+  const serializedIdentitiesList = localStorage.getItem("identities");
 
-  let identities = JSON.parse(serializedIdentitiesList);
+  const identities = JSON.parse(serializedIdentitiesList);
 
   identities[key] = null;
 
@@ -95,14 +95,18 @@ export function destroyIdentityFromLocalStorage(key) {
   localStorage.setItem("identities", JSON.stringify(identities));
 }
 
-export function failPincodeAttempt(password) {
+function sleep(ms) {
+  return new Promise(resolve => setTimeout(resolve, ms));
+}
+
+export async function failPincodeAttempt(password) {
   let message = "Wrong pincode";
   if (password !== "00000000") {
     let attempt = localStorage.getItem("attempt") || 1;
     attempt = parseInt(attempt);
     if (attempt === 9) {
       const identitiesTemp = listIdentitiesFromLocalStorage();
-      for (let i in identitiesTemp) {
+      for (const i in identitiesTemp) {
         destroyIdentityFromLocalStorage(i);
       }
       message = "9 failed attempts. Identity is revoked!";
@@ -117,6 +121,7 @@ export function failPincodeAttempt(password) {
       localStorage.setItem("attempt", attempt + 1);
     }
   }
+  await sleep(1000);
   return message;
 }
 
diff --git a/javascript/src/utilities/signingUtilities.js b/javascript/src/utilities/signingUtilities.js
index 338c627008502fbe3caca72f966d1e15a4596df8..bb6027a04133449d4044806027472b419798a70e 100644
--- a/javascript/src/utilities/signingUtilities.js
+++ b/javascript/src/utilities/signingUtilities.js
@@ -650,7 +650,11 @@ export function decryptMessage(message, password) {
         return pvutils.arrayBufferToString(result);
       })
       .catch(() => {
-        return Promise.reject(failPincodeAttempt(password));
+        return new Promise((resolve, reject) => {
+          failPincodeAttempt(password).then((message) => {
+            reject(message);
+          });
+        });
       });
   } else {
     return Promise.reject(getTimeLeftInLocalStorage());