diff --git a/scripts/bot/run-bot.js b/scripts/bot/run-bot.js
index 687f27f8598764a9384dc7023e523bf1e9be6288..6992f6e435bee774da40c0dedd2f4e677d476d25 100755
--- a/scripts/bot/run-bot.js
+++ b/scripts/bot/run-bot.js
@@ -37,7 +37,7 @@ function log(...objs) {
   };
   const roomOption = options["--room"];
   if (roomOption) {
-    params.room = roomOption;
+    params.hub_id = roomOption;
   }
 
   const url = `${baseUrl}?${querystring.stringify(params)}`;
diff --git a/src/hub.js b/src/hub.js
index b694d396c36f4e8f202c90fbcbfa429c13c22d76..a9033ebfed74a1222864f41ac1af6c7033bf662c 100644
--- a/src/hub.js
+++ b/src/hub.js
@@ -273,10 +273,6 @@ async function handleHubChannelJoined(entryManager, hubChannel, data) {
 
         hubChannel.channel.push("naf", payload);
       };
-
-      if (isBotMode) {
-        entryManager.enterSceneWhenLoaded(new MediaStream(), false);
-      }
     })
     .catch(connectError => {
       // hacky until we get return codes
@@ -289,6 +285,14 @@ async function handleHubChannelJoined(entryManager, hubChannel, data) {
     });
 }
 
+async function runBotMode(scene, entryManager) {
+  const noop = () => {};
+  scene.renderer = { setAnimationLoop: noop, render: noop };
+
+  while (!NAF.connection.isConnected()) await nextTick();
+  entryManager.enterSceneWhenLoaded(new MediaStream(), false);
+}
+
 document.addEventListener("DOMContentLoaded", () => {
   const scene = document.querySelector("a-scene");
   const hubChannel = new HubChannel(store);
@@ -354,8 +358,7 @@ document.addEventListener("DOMContentLoaded", () => {
 
     // Replace renderer with a noop renderer to reduce bot resource usage.
     if (isBotMode) {
-      const noop = () => {};
-      scene.renderer = { setAnimationLoop: noop, render: noop };
+      runBotMode(scene, entryManager);
     }
   });
 
diff --git a/src/scene-entry-manager.js b/src/scene-entry-manager.js
index f5b65c1fdb3234391cae1220c34a574293c0a742..f525c6d0f63d20b6fe06393a0fee129dd6ce5922 100644
--- a/src/scene-entry-manager.js
+++ b/src/scene-entry-manager.js
@@ -255,6 +255,8 @@ export default class SceneEntryManager {
   };
 
   _runBot = async mediaStream => {
+    console.log("Running bot");
+
     this.playerRig.setAttribute("avatar-replay", {
       camera: "#player-camera",
       leftController: "#player-left-controller",