earendil-works/pi · error · Error

Login cancelled

Error message

Login cancelled

What it means

Error "Login cancelled" thrown in earendil-works/pi.

Source

Thrown at packages/ai/src/auth/oauth/github-copilot.ts:440

		try {
			if (await enableGitHubCopilotModel(token, modelId, enterpriseDomain, signal)) {
				enabledModelIds.push(modelId);
			}
		} catch (error) {
			if (signal.aborted) throw error;
			break;
		}
	}
	return enabledModelIds;
}

async function loginGitHubCopilot(interaction: ProviderAuthInteraction): Promise<OAuthCredential> {
	const input = await interaction.prompt({
		type: "text",
		message: "GitHub Enterprise URL/domain (blank for github.com)",
		placeholder: "company.ghe.com",
	});
	if (interaction.signal.aborted) throw new Error("Login cancelled");

	const trimmed = input.trim();
	const enterpriseDomain = normalizeDomain(input);
	if (trimmed && !enterpriseDomain) throw new Error("Invalid GitHub Enterprise URL/domain");
	const domain = enterpriseDomain || "github.com";

	const device = await startDeviceFlow(domain, interaction.signal);
	interaction.notify({
		type: "device_code",
		userCode: device.user_code,
		verificationUri: device.verification_uri,
		intervalSeconds: device.interval,
		expiresInSeconds: device.expires_in,
	});

	const githubAccessToken = await pollForGitHubAccessToken(domain, device, interaction.signal);
	const credentials = await refreshGitHubCopilotAccessToken(
		githubAccessToken,

View on GitHub (pinned to 4af9d21d3b)

Solutions

  1. Restart the login flow and complete it.

When it happens

Trigger: Thrown at packages/ai/src/auth/oauth/github-copilot.ts:440 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/07efdd53016b077e. Report an issue: GitHub.