can1357/oh-my-pi · error · Error

No OAuth accounts resolved for provider ${model.provider}

Error message

No OAuth accounts resolved for provider ${model.provider}

What it means

The dry-balance --bench mode benchmarks each OAuth account for the target model's provider via resolveBenchTargets. If no OAuth accounts resolve for that provider, there is nothing to bench and the command throws, naming the provider. This only applies to providers authenticated through OAuth (not API keys).

Source

Thrown at packages/coding-agent/src/cli/dry-balance-cli.ts:818

		progressClosed = true;
		progress?.close();
	};
	try {
		const modelSelector = command.flags.model ?? command.model;
		const { model, warning } = await resolveDryBalanceModel(
			modelSelector,
			runtime.modelRegistry,
			runtime.settings,
			randomSessionId,
		);
		if (warning) writeStderr(`${chalk.yellow(`Warning: ${warning}`)}\n`);
		let results: DryBalanceAttemptResult[];
		let benchResults: DryBalanceBenchResult[] | undefined;
		let summarySamples = samples;
		let summaryConcurrency = concurrency;
		if (isBench) {
			const targets = await resolveBenchTargets(model, runtime.modelRegistry.authStorage);
			if (targets.length === 0) throw new Error(`No OAuth accounts resolved for provider ${model.provider}`);
			summarySamples = targets.length;
			summaryConcurrency = targets.length;
			const progressWrite = command.flags.json ? writeStderr : writeStdout;
			const progressInteractive = command.flags.json
				? (deps.stderrIsTTY ?? process.stderr.isTTY === true)
				: (deps.stdoutIsTTY ?? process.stdout.isTTY === true);
			const progressColumns = command.flags.json
				? (deps.stderrColumns ?? process.stderr.columns ?? 80)
				: (deps.stdoutColumns ?? process.stdout.columns ?? 80);
			progress = createBenchProgressSink(targets.length, progressWrite, progressInteractive, progressColumns);
			benchResults = await runBenchTargets(
				model,
				targets,
				runtime.modelRegistry.authStorage,
				randomSessionId,
				progress,
				streamFn,
				now,

View on GitHub (pinned to 9690622007)

Solutions

  1. Re-authenticate the provider with OAuth: omp auth login <provider> (or the auth command for that provider)
  2. Check `omp auth` (status/list) to confirm at least one OAuth account exists for the provider
  3. Pick a model whose provider has OAuth accounts, or run non-bench mode which uses the configured credential instead
  4. Re-run OAuth login if tokens expired; stale/invalid tokens may resolve to zero accounts

Example fix

// before
omp dry-balance --bench --model openai/gpt-4.1   # only API-key auth configured
// after
omp auth login openai
omp dry-balance --bench --model openai/gpt-4.1
Defensive patterns

Strategy: validation

Validate before calling

const accounts = await authStorage.list(model.provider); // provider auth storage
if (!accounts || accounts.length === 0) {
  console.error(`Provider ${model.provider} has no OAuth accounts; run the auth login command first.`);
}

Try / catch

try {
  await runBench(model);
} catch (e) {
  if (/No OAuth accounts resolved/.test((e as Error).message)) {
    console.error(`Authenticate ${model.provider} via OAuth (auth login) or drop --bench to use the configured credential.`);
  } else throw e;
}

Prevention

When it happens

Trigger: Running `omp dry-balance --bench` with a model whose provider has zero resolved OAuth accounts: the provider was authenticated with an API key instead of OAuth, OAuth tokens expired and were dropped, or the provider is API-key-only.

Common situations: Benching an OpenAI/Anthropic-style model while logged in via API key env var rather than `omp auth` OAuth login; revoked or expired OAuth credentials; selecting a model from a provider (e.g. a custom OpenAI-compatible endpoint) that has no OAuth flow at all.

Related errors


AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31). Data as JSON: /api/errors/54034cf414cd1288. Report an issue: GitHub.