earendil-works/pi · error · Error

OpenAI Codex token refresh error: ${error instanceof Error ?

Error message

OpenAI Codex token refresh error: ${error instanceof Error ? error.message : String(error)}

What it means

Error "OpenAI Codex token refresh error: ${error instanceof Error ? error.message : String(error)}" thrown in earendil-works/pi.

Source

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

	return readTokenResponse(response, "exchange");
}

async function refreshAccessToken(refreshToken: string, signal: AbortSignal): Promise<OAuthToken> {
	let response: Response;
	try {
		response = await fetch(TOKEN_URL, {
			method: "POST",
			headers: { "Content-Type": "application/x-www-form-urlencoded" },
			body: new URLSearchParams({
				grant_type: "refresh_token",
				refresh_token: refreshToken,
				client_id: CLIENT_ID,
			}),
			signal,
		});
	} catch (error) {
		throw new Error(`OpenAI Codex token refresh error: ${error instanceof Error ? error.message : String(error)}`);
	}

	return readTokenResponse(response, "refresh");
}

async function startOpenAICodexDeviceAuth(signal: AbortSignal): Promise<DeviceAuthInfo> {
	const response = await fetchWithLoginCancellation(DEVICE_USER_CODE_URL, {
		method: "POST",
		headers: { "Content-Type": "application/json" },
		body: JSON.stringify({ client_id: CLIENT_ID }),
		signal,
	});

	if (!response.ok) {
		if (response.status === 404) {
			throw new Error(
				"OpenAI Codex device code login is not enabled for this server. Use browser login or verify the server URL.",
			);

View on GitHub (pinned to 4af9d21d3b)

Solutions

  1. Inspect the embedded error; re-login if the refresh token is invalid.

When it happens

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