earendil-works/pi · error · Error

Invalid OpenAI Codex device code response: ${JSON.stringify(

Error message

Invalid OpenAI Codex device code response: ${JSON.stringify(json)}

What it means

Error "Invalid OpenAI Codex device code response: ${JSON.stringify(json)}" thrown in earendil-works/pi.

Source

Thrown at packages/ai/src/auth/oauth/openai-codex.ts:225

			`OpenAI Codex device code request failed with status ${response.status}${responseBody ? `: ${responseBody}` : ""}`,
		);
	}

	const rawJson = await response.json();
	const json = rawJson as {
		device_auth_id?: string;
		user_code?: string;
		interval?: number | string;
	} | null;
	const intervalSeconds = typeof json?.interval === "string" ? Number(json.interval.trim()) : json?.interval;
	if (
		!json?.device_auth_id ||
		!json.user_code ||
		typeof intervalSeconds !== "number" ||
		!Number.isFinite(intervalSeconds) ||
		intervalSeconds < 0
	) {
		throw new Error(`Invalid OpenAI Codex device code response: ${JSON.stringify(json)}`);
	}

	return {
		deviceAuthId: json.device_auth_id,
		userCode: json.user_code,
		intervalSeconds,
	};
}

async function pollOpenAICodexDeviceAuth(device: DeviceAuthInfo, signal: AbortSignal): Promise<DeviceTokenSuccess> {
	return pollOAuthDeviceCodeFlow<DeviceTokenSuccess>({
		intervalSeconds: device.intervalSeconds,
		expiresInSeconds: DEVICE_CODE_TIMEOUT_SECONDS,
		signal,
		poll: async () => {
			const response = await fetchWithLoginCancellation(DEVICE_TOKEN_URL, {
				method: "POST",
				headers: { "Content-Type": "application/json" },

View on GitHub (pinned to 4af9d21d3b)

Solutions

  1. Inspect the JSON payload in the message; retry or update parsing.

When it happens

Trigger: Thrown at packages/ai/src/auth/oauth/openai-codex.ts:225 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/40c3bc081480c98b. Report an issue: GitHub.