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
- Log in / configure API keys (e.g. run auth setup) so at least one model is available
- Clear or widen the configured model patterns (settings default role / activeModelPattern) so they match an existing model
- Run modelRegistry.refresh() or restart the session to re-detect providers
- 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
- Configure auth/API keys before using LLM-dependent features
- Keep the default model role pointing at a model that exists in the registry
- Avoid over-restrictive model patterns that filter out everything
- Call registry.refresh() after changing provider configuration
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
- gitlab-duo-agent
- No API key for ${resolved.model.provider}/${resolved.model.i
- options.authStorage and options.modelRegistry.authStorage mu
- Security scans require a stored OAuth account for ${provider
- Security OAuth credential ${requestedCredentialId} is not av
AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31).
Data as JSON: /api/errors/4df9ed79643478f2.
Report an issue: GitHub.