earendil-works/pi · error · Error
Invalid Kimi Code device authorization response: ${JSON.stri
Error message
Invalid Kimi Code device authorization response: ${JSON.stringify(json)} What it means
Error "Invalid Kimi Code device authorization response: ${JSON.stringify(json)}" thrown in earendil-works/pi.
Source
Thrown at packages/ai/src/auth/oauth/kimi-coding.ts:99
if (!response.ok) {
const text = await response.text().catch(() => "");
throw new Error(`Kimi Code device authorization failed with status ${response.status}${text ? `: ${text}` : ""}`);
}
const json = await readJson(response);
const deviceCode = json?.device_code;
const userCode = json?.user_code;
const verificationUri = json?.verification_uri;
const verificationUriComplete = json?.verification_uri_complete;
if (
typeof deviceCode !== "string" ||
typeof userCode !== "string" ||
typeof verificationUri !== "string" ||
typeof verificationUriComplete !== "string" ||
!trustedHttpUrl(verificationUriComplete) ||
!trustedHttpUrl(verificationUri)
) {
throw new Error(`Invalid Kimi Code device authorization response: ${JSON.stringify(json)}`);
}
const interval = json?.interval;
const expiresIn = json?.expires_in;
return {
deviceCode,
userCode,
verificationUri,
verificationUriComplete,
intervalSeconds:
typeof interval === "number" && Number.isFinite(interval) && interval > 0
? interval
: DEFAULT_POLL_INTERVAL_SECONDS,
expiresInSeconds:
typeof expiresIn === "number" && Number.isFinite(expiresIn) && expiresIn > 0
? expiresIn
: DEVICE_CODE_TIMEOUT_SECONDS,
};View on GitHub (pinned to 4af9d21d3b)
Solutions
- Inspect the JSON payload in the message; update parsing if the API response shape changed.
When it happens
Trigger: Thrown at packages/ai/src/auth/oauth/kimi-coding.ts:99 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24).
Data as JSON: /api/errors/cb67c6443d3c8066.
Report an issue: GitHub.