diff --git a/src/subscriptions.js b/src/subscriptions.js
index 11e760c2f8d7f8acec40f909069cbd043bdcf4b4..bdf5765ef13c9ee6096eb0812798283a22176af5 100644
--- a/src/subscriptions.js
+++ b/src/subscriptions.js
@@ -51,7 +51,15 @@ export default class Subscriptions {
     while (this.registration === undefined) await nextTick();
     if (!this.registration || !this.registration.pushManager) return null;
     try {
-      if ((await this.registration.pushManager.permissionState()) !== "granted") return null;
+      const convertedVapidKey = urlBase64ToUint8Array(this.vapidPublicKey);
+
+      if (
+        (await this.registration.pushManager.permissionState({
+          userVisibleOnly: true,
+          applicationServerKey: convertedVapidKey
+        })) !== "granted"
+      )
+        return null;
     } catch (e) {
       return null; // Chrome can throw here complaining about userVisible if push is not right
     }