diegosouzapw/OmniRoute · error · Error

Browser did not become ready: ${lastError?.message || "CDP t

Error message

Browser did not become ready: ${lastError?.message || "CDP timeout"}

What it means

Error "Browser did not become ready: ${lastError?.message || "CDP timeout"}" thrown in diegosouzapw/OmniRoute.

Source

Thrown at src/lib/vncSession/harvest.ts:274

  const deadline = Date.now() + timeoutMs;
  let lastError: Error | null = null;

  while (Date.now() < deadline) {
    const controller = new AbortController();
    const timer = setTimeout(() => controller.abort(), 2_000);
    try {
      const version = await fetchJson(`http://127.0.0.1:${cdpPort}/json/version`, controller.signal);
      if (version?.webSocketDebuggerUrl) return;
      lastError = new Error("CDP endpoint did not return a websocket URL");
    } catch (error) {
      lastError = toError(error, "CDP endpoint is not ready");
    } finally {
      clearTimeout(timer);
    }
    await delay(500);
  }

  throw new Error(`Browser did not become ready: ${lastError?.message || "CDP timeout"}`);
}

export async function harvestFromContainer(
  cdpPort: number,
  provider: VncProviderEntry,
  timeoutMs = 20_000
): Promise<HarvestResult> {
  const controller = new AbortController();
  const timeout = setTimeout(() => controller.abort(), timeoutMs);
  let client: CdpClient | null = null;

  try {
    const version = await fetchJson(
      `http://127.0.0.1:${cdpPort}/json/version`,
      controller.signal
    );
    const debuggerUrl = version?.webSocketDebuggerUrl;
    if (typeof debuggerUrl !== "string" || !debuggerUrl) {

View on GitHub (pinned to a179ffed5b)

When it happens

Trigger: Thrown at src/lib/vncSession/harvest.ts:274 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25). Data as JSON: /api/errors/71fe867a00f99a5d. Report an issue: GitHub.