diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index f141c7077456544782c802d94e2218d6f3d5da7c..49a8c98f567fef676cbfcf482453e5335b9f2ba0 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -1383,23 +1383,17 @@ window.currentlyAuthenticatedIdentity = null;
 window.currentlyLoadedIdentity = null;
 window.lastTimeGetProfile = 0;
 
-const handleIdentityLogin = async (identity, uuid, token) => {
-  try {
-    const { loadedIdentities, viamApi } = window;
-    const { publicKey } = identity.authentication;
-
-    const deviceHash = await createDeviceHash(publicKey);
-
-    viamApi.setSessionData(uuid, token, deviceHash);
-    localStorage.setItem("uuid", uuid);
-    localStorage.setItem("token", token);
-    localStorage.setItem("authenticatedIdentity", publicKey);
-    window.currentlyAuthenticatedIdentity = loadedIdentities[publicKey];
-    window.lastTimeGetProfile = 0;
-    setKeyForUUID(uuid, publicKey);
-  } catch (error) {
-    console.warn(error);
-  }
+const handleIdentityLogin = (identity, uuid, token) => {
+  const { loadedIdentities, viamApi } = window;
+  const { publicKey } = identity.authentication;
+
+  viamApi.setSessionData(uuid, token);
+  localStorage.setItem("uuid", uuid);
+  localStorage.setItem("token", token);
+  localStorage.setItem("authenticatedIdentity", publicKey);
+  window.currentlyAuthenticatedIdentity = loadedIdentities[publicKey];
+  window.lastTimeGetProfile = 0;
+  setKeyForUUID(uuid, publicKey);
 };
 
 function executeRestfulFunction(type, that, fn, ...args) {
@@ -1411,11 +1405,11 @@ function executeRestfulFunction(type, that, fn, ...args) {
 
       if (type === "private" && identity && response.data.code === "400" && response.data.status === "Bad session") {
         viamApi.identityLogin("previousaddeddevice")
-          .then(async (response) => {
+          .then((response) => {
             if (response.data.code === "200") {
               const uuid = response.data.data["Uuid"];
               const token = response.data.data["Session"];
-              await handleIdentityLogin(identity, uuid, token);
+              handleIdentityLogin(identity, uuid, token);
               // TODO: Previously there was fn.apply(null, args) where null is probably wrong context for fn.apply()
               fn.apply(that, args).then(({data}) => executeResult(data));
             } else {
@@ -1448,11 +1442,12 @@ function loadIdentityInternal(identityKey, pinCode) {
 
       if (identityKey === localStorage.getItem("authenticatedIdentity")) {
         window.currentlyAuthenticatedIdentity = copiedIdentity;
-        window.viamApi.setIdentity(identityKey);
         const uuid = localStorage.getItem("uuid");
         const token = localStorage.getItem("token");
         const deviceHash = await createDeviceHash(identityKey);
-        window.viamApi.setSessionData(uuid, token, deviceHash);
+        window.viamApi.setIdentity(identityKey);
+        window.viamApi.setDeviceHash(deviceHash);
+        window.viamApi.setSessionData(uuid, token);
       }
 
       window.currentlyLoadedIdentity = copiedIdentity;
@@ -1745,7 +1740,7 @@ const connection = Penpal.connectToParent({
       }
 
       const deviceHash = await createDeviceHash(loginIdentity.authentication.publicKey);
-      window.viamApi.setSessionData('', '', deviceHash);
+      window.viamApi.setDeviceHash(deviceHash);
       window.viamApi.setIdentity(loginIdentity.authentication.publicKey);
 
       const identityLoginResponse =
@@ -1762,7 +1757,7 @@ const connection = Penpal.connectToParent({
 
       if (code === "200") {
         if (mode === LOGIN_MODES.SMS || mode === LOGIN_MODES.PREVIOUSLY_ADDED_DEVICE) {
-          await handleIdentityLogin(loginIdentity, data.Uuid, data.Session, deviceHash);
+          handleIdentityLogin(loginIdentity, data.Uuid, data.Session);
           await getProfileData(loginIdentity);
 
           if (mode === LOGIN_MODES.PREVIOUSLY_ADDED_DEVICE) {
@@ -1865,7 +1860,7 @@ const connection = Penpal.connectToParent({
       return new Penpal.Promise(result => {
         executeRestfulFunction("private", viamApi, viamApi.identityLogout).then(executeResult => {
           viamApi.setIdentity("");
-          viamApi.setSessionData("", "", "", "");
+          viamApi.setSessionData("", "");
           clearPinCodeTtl(authenticationPublicKey);
 
           window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity");
@@ -2128,7 +2123,7 @@ const connection = Penpal.connectToParent({
 
         executeRestfulFunction("public", viamApi, viamApi.marketingSignUpIdentificator, identificator, reference).then(executeResult => {
           viamApi.setIdentity("");
-          viamApi.setSessionData("", "", "", "");
+          viamApi.setSessionData("", "");
           result(executeResult);
         });
       });
@@ -2139,7 +2134,7 @@ const connection = Penpal.connectToParent({
 
         executeRestfulFunction("public", viamApi, viamApi.marketingGetIdentificatorProfile, identificator, pincode).then(executeResult => {
           viamApi.setIdentity("");
-          viamApi.setSessionData("", "", "", "");
+          viamApi.setSessionData("", "");
           result(executeResult);
         });
       });
@@ -2150,7 +2145,7 @@ const connection = Penpal.connectToParent({
 
         executeRestfulFunction("public", viamApi, viamApi.marketingExecuteEventForIdentificator, identificator, pincode, event).then(executeResult => {
           viamApi.setIdentity("");
-          viamApi.setSessionData("", "", "", "");
+          viamApi.setSessionData("", "");
           result(executeResult);
         });
       });
@@ -2384,7 +2379,7 @@ connection.promise.then(parent => {
               case "Authenticated" : {
                 const uuid = event.payloads[0];
                 const token = event.payloads[1];
-                await handleIdentityLogin(window.currentlyLoadedIdentity, uuid, token);
+                handleIdentityLogin(window.currentlyLoadedIdentity, uuid, token);
                 const identityToStore = window.currentlyAuthenticatedIdentity;
                 event.payloads = [{fromQRCode: true}];
                 setIdentityInLocalStorage(identityToStore).then(() => {
diff --git a/main.go b/main.go
index 09206ad80e6d91fa5f1896ff9009a3a17ad4bb7a..f688ea9944a2a2475ec20e9ca8bb7fe7334b6ff5 100644
--- a/main.go
+++ b/main.go
@@ -79,9 +79,12 @@ func buildViamAPI() string {
 		"}\n\n"
 
 
-	result += "ViamAPI.prototype.setSessionData = function(uuid, token, deviceHash) {\n" +
+	result += "ViamAPI.prototype.setSessionData = function(uuid, token) {\n" +
 		"    this.config.headers.uuid = uuid;\n" +
 		"    this.config.headers.token = token;\n" +
+		"};\n\n"
+
+	result += "ViamAPI.prototype.setDeviceHash = function(deviceHash) {\n" +
 		"    this.config.headers.deviceHash = deviceHash;\n" +
 		"};\n\n"