{"record":{"id":"8aa5e53d50c2ee03","repo":"openclaw/openclaw","slug":"brave-search-base-url-must-use-http-or-https","errorCode":null,"errorMessage":"Brave Search base URL must use http:// or https://.","messagePattern":"Brave Search base URL must use http:// or https://\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"extensions/brave/src/brave-web-search-provider.runtime.ts","lineNumber":144,"sourceCode":"        allowRfc2544BenchmarkRange: true,\n      },\n    });\n    return pinned.addresses.every((address) => isPrivateIpAddress(address));\n  } catch {\n    return false;\n  }\n}\n\nasync function validateBraveBaseUrl(baseUrl: string): Promise<BraveEndpointMode> {\n  let parsed: URL;\n  try {\n    parsed = new URL(baseUrl);\n  } catch {\n    throw new Error(\"Brave Search base URL must be a valid http:// or https:// URL.\");\n  }\n\n  if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n    throw new Error(\"Brave Search base URL must use http:// or https://.\");\n  }\n\n  if (parsed.protocol === \"http:\") {\n    await assertHttpUrlTargetsPrivateNetwork(parsed.toString(), {\n      dangerouslyAllowPrivateNetwork: true,\n      errorMessage:\n        \"Brave Search HTTP base URL must target a trusted private or loopback host. Use https:// for public hosts.\",\n    });\n    return \"selfHosted\";\n  }\n\n  return (await braveEndpointTargetsPrivateNetwork(parsed)) ? \"selfHosted\" : \"strict\";\n}\n\nfunction missingBraveKeyPayload() {\n  return {\n    error: \"missing_brave_api_key\",\n    message: `web_search (brave) needs a Brave Search API key. Run \\`${formatCliCommand(\"openclaw configure --section web\")}\\` to store it, or set BRAVE_API_KEY in the Gateway environment. If you do not want to configure a search API key, use web_fetch for a specific URL or the browser tool for interactive pages.`,","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/openclaw/openclaw/blob/01804a75319da4b69c9ab98ceaa30477e22b8c0b/extensions/brave/src/brave-web-search-provider.runtime.ts#L126-L162","documentation":"Error \"Brave Search base URL must use http:// or https://.\" thrown in openclaw/openclaw.","triggerScenarios":"Thrown at extensions/brave/src/brave-web-search-provider.runtime.ts:144 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"}