diegosouzapw/OmniRoute · error
Grok returned an unsupported verification URL
Error message
Grok returned an unsupported verification URL
What it means
Error "Grok returned an unsupported verification URL" thrown in diegosouzapw/OmniRoute.
Source
Thrown at src/lib/oauth/providers/grok-cli.ts:86
[...value].some((character) => {
const codePoint = character.codePointAt(0) ?? 0;
return codePoint <= 0x1f || codePoint === 0x7f;
})
) {
throw new Error("Grok returned an invalid verification URL");
}
let url: URL;
try {
url = new URL(value);
} catch {
throw new Error("Grok returned an invalid verification URL");
}
const isLocalHttp =
url.protocol === "http:" && (url.hostname === "localhost" || url.hostname === "127.0.0.1");
if (url.protocol !== "https:" && !isLocalHttp) {
throw new Error("Grok returned an unsupported verification URL");
}
}
/**
* Device-code flow (#7358). Kept alongside the browser PKCE flow below (#7013
* rework) — see grokCli.flowType, which stays "device_code" so it remains the
* primary/default experience in OAuthModal.tsx and the route.ts device-code
* action family.
*
* `grokCli.config` below is GROK_BUILD_OAUTH_CONFIG (the browser-PKCE shape —
* required so it stays reference-equal for oauth-providers-config.test.ts and
* so buildAuthUrl/exchangeToken keep receiving the right config). The
* device-code endpoints and scope live on a DIFFERENT config (GROK_CLI_CONFIG:
* deviceCodeUrl + a wider legacy scope set) that has no `authorizeUrl`/
* `loopbackPort` shape, so requestDeviceCode/pollToken intentionally ignore
* whatever config providers.ts passes them and always read GROK_CLI_CONFIG
* directly.
*/View on GitHub (pinned to a179ffed5b)
When it happens
Trigger: Thrown at src/lib/oauth/providers/grok-cli.ts:86 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/74051d4d6cdb0fbc.
Report an issue: GitHub.