diff --git a/packages/qr-code-scanner/src/qr-code-scanner.js b/packages/qr-code-scanner/src/qr-code-scanner.js
index d58b0d41e098abc37e6abea122ed77f78f11ced9..dae42964b0d8b5f1600cf68ba6d9a71bc58f10a1 100644
--- a/packages/qr-code-scanner/src/qr-code-scanner.js
+++ b/packages/qr-code-scanner/src/qr-code-scanner.js
@@ -65,7 +65,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
         i18n.changeLanguage(this.lang);
 
         this.updateComplete.then(async ()=>{
-            await this.checkSupport();
+            this.notSupported = (!await this.checkSupport());
             if (!this.stopScan) {
                 this.qrCodeScannerInit();
             }
@@ -99,8 +99,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
                 devices = await navigator.mediaDevices.enumerateDevices()
             } catch (err) {
                 console.log(err.name + ": " + err.message);
-                this.notSupported = true;
-                return;
+                return false;
             }
 
             for (let device of devices) {
@@ -114,10 +113,6 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
                     }
                 }
             }
-
-            if (devices_map.size < 1) {
-                this.notSupported = true;
-            }
             for (let [id, label] of devices_map) {
                 let opt = document.createElement("option");
                 opt.value = id;
@@ -129,8 +124,13 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
             } else {
                 this.activeCamera = devices_map.size ? Array.from(devices_map)[0][0] : '';
             }
+
+            if (devices_map.size < 1) {
+                return false;
+            }
+            return true;
         } else {
-            this.notSupported = true;
+            return false;
         }
     }