{"record":{"id":"8b8db558d9ac909c","repo":"openclaw/openclaw","slug":"cdp-json-version-missing-websocketdebuggerurl","errorCode":null,"errorMessage":"CDP /json/version missing webSocketDebuggerUrl","messagePattern":"CDP /json/version missing webSocketDebuggerUrl","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"extensions/browser/src/browser/cdp.ts","lineNumber":264,"sourceCode":"        cdpControlPolicy,\n      );\n    } catch (err) {\n      // Discovery failed for an HTTP/HTTPS URL — propagate immediately.\n      if (!isWebSocketUrl(opts.cdpUrl)) {\n        throw err;\n      }\n      // For bare ws/wss URLs, fall through: /json/version is unavailable\n      // so we attempt to use opts.cdpUrl as a direct WS endpoint below.\n    }\n    const wsUrlRaw = version?.webSocketDebuggerUrl?.trim() ?? \"\";\n    if (wsUrlRaw) {\n      wsUrl = normalizeCdpWsUrl(wsUrlRaw, discoveryUrl);\n    } else if (isWebSocketUrl(opts.cdpUrl)) {\n      // /json/version unavailable or returned no WebSocket URL. Treat the\n      // original URL as a direct WebSocket endpoint.\n      wsUrl = opts.cdpUrl;\n    } else {\n      throw new Error(\"CDP /json/version missing webSocketDebuggerUrl\");\n    }\n  }\n\n  const candidateWsUrls =\n    isWebSocketUrl(opts.cdpUrl) && wsUrl !== opts.cdpUrl ? [wsUrl, opts.cdpUrl] : [wsUrl];\n  let lastError: unknown;\n  for (const candidateWsUrl of candidateWsUrls) {\n    try {\n      const endpointSource =\n        candidateWsUrl === opts.cdpUrl\n          ? ({ source: \"configured\" } as const)\n          : ({ source: \"discovered\", configuredUrl: opts.cdpUrl } as const);\n      await assertCdpEndpointAllowed(candidateWsUrl, cdpControlPolicy, endpointSource);\n      opts.signal?.throwIfAborted();\n      return await withCdpSocket(\n        candidateWsUrl,\n        async (send) => {\n          opts.signal?.throwIfAborted();","sourceCodeStart":246,"sourceCodeEnd":282,"githubUrl":"https://github.com/openclaw/openclaw/blob/01804a75319da4b69c9ab98ceaa30477e22b8c0b/extensions/browser/src/browser/cdp.ts#L246-L282","documentation":"Error \"CDP /json/version missing webSocketDebuggerUrl\" thrown in openclaw/openclaw.","triggerScenarios":"Thrown at extensions/browser/src/browser/cdp.ts:264 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01804a75319da4b69c9ab98ceaa30477e22b8c0b","analyzedAt":"2026-08-12T04:37:58.197Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}