diegosouzapw/OmniRoute · error · Error
No supported Chrome or Chromium executable was found
Error message
No supported Chrome or Chromium executable was found
What it means
Configuration guard in buildProviderConfig: neither a Chrome/Chromium executable nor a CDP endpoint is available. The executor drives a real browser via Playwright/CDP for ChatGPT Web; it probes chromeExecutablePath settings, CHATGPT_WEB_CODEX_CHROME_PATH/CHROME_PATH env vars, and common install paths, and also honors CHATGPT_WEB_CODEX_CDP_URL — all came up empty.
Solutions
- Install Google Chrome or Chromium on the host machine
- Set CHATGPT_WEB_CODEX_CHROME_PATH (or CHROME_PATH) to the browser executable path
- Point CHATGPT_WEB_CODEX_CDP_URL or the connection's browserCdpEndpoint at an already-running Chrome with remote debugging
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at open-sse/executors/chatgpt-web-codex.ts:156 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25).
Data as JSON: /api/errors/ee9674550adbf0fe.
Report an issue: GitHub.
Appendix: source
Thrown at open-sse/executors/chatgpt-web-codex.ts:156
return (parsed.context.tools?.length ?? 0) > 0;
}
function buildProviderConfig(
input: ExecuteInput,
parsed: CodexParsedRequest,
storageStatePath: string,
connectionId: string
): CodexProviderConfig {
const data = record(input.credentials.providerSpecificData);
const route = requireChatGptWebCodexRoute(input.model);
const paths = connectionRuntimePaths(connectionId);
const cdpEndpoint =
configuredString(data, "browserCdpEndpoint") ?? process.env.CHATGPT_WEB_CODEX_CDP_URL;
const chromeExecutablePath = detectChromeExecutable(
configuredString(data, "chromeExecutablePath")
);
if (!chromeExecutablePath && !cdpEndpoint) {
throw new Error("No supported Chrome or Chromium executable was found");
}
const proAvailable = data.proAvailable === true;
if (route.pro && !proAvailable) {
throw new Error("ChatGPT Pro is not available for this connection");
}
const hasTools = toolModeRequired(parsed);
const requiredChoice =
parsed.options.toolChoice === "required" || typeof parsed.options.toolChoice === "object";
if (route.pro && requiredChoice) {
throw new Error("ChatGPT Web Pro is read-only and cannot satisfy a required tool choice");
}
const connector =
configuredString(data, "connectorName", "appName") ??
process.env.CHATGPT_WEB_CODEX_CONNECTOR_NAME?.trim();
if (!route.pro && hasTools && !connector) {View on GitHub (pinned to a179ffed5b)