earendil-works/pi · error · Error

Anthropic token refresh request failed. url=${TOKEN_URL}; de

Error message

Anthropic token refresh request failed. url=${TOKEN_URL}; details=${formatErrorDetails(error)}

What it means

Error "Anthropic token refresh request failed. url=${TOKEN_URL}; details=${formatErrorDetails(error)}" thrown in earendil-works/pi.

Source

Thrown at packages/ai/src/auth/oauth/anthropic.ts:330

}

/**
 * Refresh Anthropic OAuth token
 */
async function refreshAnthropicToken(refreshToken: string, signal: AbortSignal): Promise<OAuthCredential> {
	let responseBody: string;
	try {
		responseBody = await postJson(
			TOKEN_URL,
			{
				grant_type: "refresh_token",
				client_id: CLIENT_ID,
				refresh_token: refreshToken,
			},
			signal,
		);
	} catch (error) {
		throw new Error(`Anthropic token refresh request failed. url=${TOKEN_URL}; details=${formatErrorDetails(error)}`);
	}

	let data: { access_token: string; refresh_token: string; expires_in: number; scope?: string };
	try {
		data = JSON.parse(responseBody) as {
			access_token: string;
			refresh_token: string;
			expires_in: number;
			scope?: string;
		};
	} catch (error) {
		throw new Error(
			`Anthropic token refresh returned invalid JSON. url=${TOKEN_URL}; body=${responseBody}; details=${formatErrorDetails(error)}`,
		);
	}

	return {
		type: "oauth",

View on GitHub (pinned to 4af9d21d3b)

Solutions

  1. Re-login; the token refresh request failed per the embedded details.

When it happens

Trigger: Thrown at packages/ai/src/auth/oauth/anthropic.ts:330 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/b2fc59598dab1e62. Report an issue: GitHub.