d2729979c240
wip: diagnose Marionette startup as Firefox sandbox failure; geckodriver status is ready but Firefox never creates MarionetteActivePort
- time
- 2026-09-04 10:29 UTC · 1 month ago
- machine
- koh2
- agent
- claude-sonnet-5
- session
- Firefox gate environment repair
- parent
- 6b2631c739d9
↓ peach-browser-d2729979.tar.gzatlas at this save
files changed1 file
scripts/test-firefox-sender-context.mjs+8 −4scripts/test-firefox-sender-context.mjs+8 −4
@@ -46,14 +46,16 @@4646 });4747 }4848 49-async function waitForDriver(port) {49+async function waitForDriver(port, driver) {5050 const deadline = Date.now() + 30_000;5151 while (Date.now() < deadline) {5252 try {5353 const response = await fetchWithTimeout(`http://127.0.0.1:${port}/status`, {}, 500);5454 if (response.ok && (await response.json()).value?.ready) return;5555 } catch {56- // geckodriver is still starting.56+ if (driver.exitCode !== null || driver.signalCode !== null) {57+ throw new Error(`geckodriver exited during startup (${driver.exitCode ?? driver.signalCode})`);58+ }5759 }5860 await new Promise((resolveDelay) => setTimeout(resolveDelay, 250));5961 }@@ -71,9 +73,11 @@7173 fetch(url, { ...options, signal: controller.signal }),7274 timeout,7375 ]);76+ } catch (error) {77+ controller.abort();78+ throw error;7479 } finally {7580 clearTimeout(timeoutId);76- controller.abort();7781 }7882 }7983 @@ -154,7 +158,7 @@154158 },155159 },156160 });157- await waitForDriver(port);161+ await waitForDriver(port, driver);158162 159163 const capabilities = {160164 browserName: "firefox",