can1357/oh-my-pi · error

No available model to generate agent specification.

Error message

No available model to generate agent specification.

What it means

After resolving model patterns against the registry, the architect picks the resolved model or falls back to the first available model. If the registry has no available models at all, there is no LLM to run the architect prompt, so this error is thrown.

Source

Thrown at packages/coding-agent/src/modes/components/agents-hub.ts:762

		}
	}

	async #runAgentCreationArchitect(description: string): Promise<GeneratedAgentSpec> {
		const modelRegistry = this.#modelContext.modelRegistry;
		if (!modelRegistry) {
			throw new Error("Model registry unavailable in current session.");
		}
		await modelRegistry.refresh();
		const modelPatterns = resolveConfiguredModelPatterns(
			this.#modelContext.activeModelPattern ??
				this.#modelContext.defaultModelPattern ??
				this.#settings.getModelRole("default"),
			this.#settings,
		);
		const { model } = resolveModelOverride(modelPatterns, modelRegistry, this.#settings);
		const selectedModel = model ?? modelRegistry.getAvailable()[0];
		if (!selectedModel) {
			throw new Error("No available model to generate agent specification.");
		}
		const systemPrompt = prompt.render(agentCreationArchitectPrompt, {});
		const userPrompt = prompt.render(agentCreationUserPrompt, { request: description });
		const { session } = await createAgentSession({
			cwd: this.#cwd,
			authStorage: modelRegistry.authStorage,
			modelRegistry,
			settings: this.#settings,
			model: selectedModel,
			systemPrompt: [systemPrompt],
			hasUI: false,
			enableLsp: false,
			enableMCP: false,
			disableExtensionDiscovery: true,
			toolNames: ["__none__"],
			customTools: [],
			skills: [],
			contextFiles: [],

View on GitHub (pinned to 9690622007)

Solutions

  1. Log in / configure API keys (e.g. run auth setup) so at least one model is available
  2. Clear or widen the configured model patterns (settings default role / activeModelPattern) so they match an existing model
  3. Run modelRegistry.refresh() or restart the session to re-detect providers
  4. Check network/provider status and retry

Example fix

// before
settings default role: "gpt-9-nonexistent" // matches nothing
// after
settings default role: "claude-sonnet-4" // available model
Defensive patterns

Strategy: validation

Validate before calling

const available = modelRegistry.getAvailable();
if (available.length === 0) {
  throw new Error("No models available — check auth and provider config before creating agents");
}

Type guard

function hasAvailableModels(reg: { getAvailable(): unknown[] }): boolean {
  return reg.getAvailable().length > 0;
}

Try / catch

try {
  await hub.runAgentCreationArchitect(desc);
} catch (err) {
  if (err instanceof Error && err.message.startsWith("No available model")) {
    // prompt user to configure API keys / fix model patterns
  } else throw err;
}

Prevention

When it happens

Trigger: modelRegistry.getAvailable() returns an empty array and resolveModelOverride returned no concrete model — e.g. no auth credentials, all providers unreachable, or pattern filters exclude every model.

Common situations: Fresh install without API keys logged in; provider outage or revoked API key; configured model patterns (default role / active pattern) matching zero models in the registry.

Related errors


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