diff --git a/packages/file-handling/src/crypto.js b/packages/file-handling/src/crypto.js
index 0e85c1b14db71344fccf54ae47b76bda3ea69239..195a685d3f6f3e26760a8401e87ead033816263d 100644
--- a/packages/file-handling/src/crypto.js
+++ b/packages/file-handling/src/crypto.js
@@ -1,4 +1,5 @@
 import { CompactEncrypt } from 'jose/jwe/compact/encrypt';
+import { compactDecrypt } from 'jose/jwe/compact/decrypt';
 import { parseJwk } from 'jose/jwk/parse';
 import {encode} from 'jose/util/base64url';
 
@@ -26,7 +27,6 @@ export async function encrypt(token, payload) {
     const jwe = await new CompactEncrypt(encoder.encode(payload))
         .setProtectedHeader({alg: 'PBES2-HS256+A128KW', enc: 'A256GCM'})
         .encrypt(key);
-    console.log("+++++++++++", jwe);
     return jwe;
 }
 
@@ -50,15 +50,11 @@ export async function encrypt(token, payload) {
  * @returns {string}
  */
 export async function decrypt(token, payload) {
-    console.log("payload", payload);
-    const encoder = new TextEncoder();
     const key = await parseJwk({kty: 'oct', k: encode(token)}, 'PBES2-HS256+A128KW');
-    const jwe = await new CompactEncrypt(encoder.encode(payload))
-        .setProtectedHeader({alg: 'PBES2-HS256+A128KW', enc: 'A256GCM'})
-        .decrypt(key);
-    console.log("jwe", jwe);
+    const decryption = await compactDecrypt(payload, key, {alg: 'PBES2-HS256+A128KW', enc: 'A256GCM'});
+    const secret = new TextDecoder().decode(decryption.plaintext);
 
-    return jwe;
+    return secret;
 }
 
 export function parseJwt (token) {
diff --git a/packages/file-handling/src/nextcloud-file-picker.js b/packages/file-handling/src/nextcloud-file-picker.js
index 4ecd5dc6d4bfcc4f3b708e69825d43c0ae3d5bd1..5bf8de4a6c6f9b496200306a9a7c763251568d4b 100644
--- a/packages/file-handling/src/nextcloud-file-picker.js
+++ b/packages/file-handling/src/nextcloud-file-picker.js
@@ -422,24 +422,32 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
      *
      */
     async checkSessionStorage() {
+        if (!this.isLoggedIn() || !this.auth)
+            return;
         const publicId = this.auth['person-id'];
         const token = parseJwt(this.auth.token);
         const sessionId = token ? token.sid : "";
-        if (this.isLoggedIn() && this.storeSession && sessionId
+        if (this.storeSession && sessionId
             && sessionStorage.getItem("nextcloud-webdav-username" + publicId)
             && sessionStorage.getItem("nextcloud-webdav-password" + publicId) ){
-            console.log("----------",  sessionStorage.getItem("nextcloud-webdav-username" + publicId));
-            const sessionStorageName = await sessionStorage.getItem("nextcloud-webdav-username" + publicId);
-            console.log("decrypt:", await decrypt(sessionId, sessionStorageName));
-               /* this.webDavClient = createClient(
-                    this.webDavUrl + "/" + sessionStorage.getItem("nextcloud-webdav-username"),
-                    {
-                        username: decrypt(sessionId, sessionStorage.getItem("nextcloud-webdav-username" + publicId)),
-                        password: decrypt(sessionId, sessionStorage.getItem("nextcloud-webdav-password" + publicId))
-                    }
-                );
-                this.isPickerActive = true;
-                this.loadDirectory(this.directoryPath);*/
+                try {
+                    const userName = await decrypt(sessionId, sessionStorage.getItem("nextcloud-webdav-username" + publicId));
+                    const password = await decrypt(sessionId, sessionStorage.getItem("nextcloud-webdav-password" + publicId));
+                    this.webDavClient = createClient(
+                        this.webDavUrl + "/" + userName,
+                        {
+                            username: userName,
+                            password: password
+                        }
+                    );
+
+                    this.isPickerActive = true;
+                    this.loadDirectory(this.directoryPath);
+                } catch (e) {
+                    sessionStorage.removeItem('nextcloud-webdav-username' + publicId);
+                    sessionStorage.removeItem('nextcloud-webdav-password' + publicId);
+                    return;
+                }
         }
     }
 
@@ -1225,10 +1233,11 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
     logOut() {
         this.webDavClient = null;
         this.isPickerActive = false;
-        sessionStorage.removeItem('nextcloud-webdav-username');
-        sessionStorage.removeItem('nextcloud-webdav-password');
-
-        console.log("log out!");
+        if (this.auth) {
+            const publicId = this.auth['person-id'];
+            sessionStorage.removeItem('nextcloud-webdav-username' + publicId);
+            sessionStorage.removeItem('nextcloud-webdav-password' + publicId);
+        }
     }
 
     /**
@@ -1815,7 +1824,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                 }}">${i18n.t('nextcloud-file-picker.connect-nextcloud', {name: this.nextcloudName})}
                         </button>
                     </div>
-                    <div class="block text-center m-inherit ${classMap({hidden: this.isPickerActive && !this.storeSession})}"> <!-- remove hidden to enable remember me -->
+                    <div class="block text-center m-inherit ${classMap({hidden: this.isPickerActive && !this.storeSession || !this.isLoggedIn()})}"> <!-- remove hidden to enable remember me -->
                         <label class="button-container remember-container">
                             ${i18n.t('nextcloud-file-picker.remember-me')}
                             <input type="checkbox" id="remember-checkbox" name="remember">