diff --git a/src/hub.js b/src/hub.js
index 84a0e496f188b4976c439147fa7397f210f0297d..93221603b2ed89a4ef85e698d4eee5c842766cd1 100644
--- a/src/hub.js
+++ b/src/hub.js
@@ -380,6 +380,16 @@ document.addEventListener("DOMContentLoaded", async () => {
     hmd: availableVREntryTypes.isInHMD
   };
 
+  // Reticulum global channel
+  const retPhxChannel = socket.channel(`ret`, { hub_id: hubId });
+  retPhxChannel
+    .join()
+    .receive("ok", async data => subscriptions.setVapidPublicKey(data.vapid_public_key))
+    .receive("error", res => {
+      subscriptions.setVapidPublicKey(null);
+      console.error(res);
+    });
+
   const pushSubscriptionEndpoint = await subscriptions.getCurrentEndpoint();
   const joinPayload = { profile: store.state.profile, push_subscription_endpoint: pushSubscriptionEndpoint, context };
   const hubPhxChannel = socket.channel(`hub:${hubId}`, joinPayload);
@@ -495,15 +505,5 @@ document.addEventListener("DOMContentLoaded", async () => {
     addToPresenceLog({ name: userInfo.metas[0].profile.displayName, type, body });
   });
 
-  // Reticulum global channel
-  const retPhxChannel = socket.channel(`ret`, { hub_id: hubId });
-  retPhxChannel
-    .join()
-    .receive("ok", async data => subscriptions.setVapidPublicKey(data.vapid_public_key))
-    .receive("error", res => {
-      subscriptions.setVapidPublicKey(null);
-      console.error(res);
-    });
-
   linkChannel.setSocket(socket);
 });