diff --git a/src/hub.js b/src/hub.js
index 6d5a92b4da7958fc165ab3c93f4e77718237ac77..384564031ed4237f6ebdb54e8e43d0c99d54a283 100644
--- a/src/hub.js
+++ b/src/hub.js
@@ -293,9 +293,13 @@ document.addEventListener("DOMContentLoaded", async () => {
 
   if (navigator.serviceWorker) {
     try {
-      navigator.serviceWorker.register("/hub.service.js");
-      navigator.serviceWorker.ready
-        .then(registration => subscriptions.setRegistration(registration))
+      navigator.serviceWorker
+        .register("/hub.service.js")
+        .then(() => {
+          navigator.serviceWorker.ready
+            .then(registration => subscriptions.setRegistration(registration))
+            .catch(() => subscriptions.setRegistrationFailed());
+        })
         .catch(() => subscriptions.setRegistrationFailed());
     } catch (e) {
       subscriptions.setRegistrationFailed();