aaif-goose/goose · error
Could not create provider: provider '{}' not found
Error message
Could not create provider: provider '{}' not found What it means
Thrown when the session's provider is not found in the provider registry (providers::get_from_registry fails) AND no fallback is possible: config.get_goose_provider() returns none or returns the same missing name. The filter(|name| name != &provider_name) explicitly rejects a fallback identical to the missing provider, so goose cannot silently retry the same broken name.
Source
Thrown at crates/goose/src/agents/agent.rs:3598
if crate::providers::get_from_registry(&provider_name)
.await
.is_ok()
{
let p = crate::providers::create_with_working_dir(
&provider_name,
extensions,
session.working_dir.clone(),
)
.await
.map_err(|error| provider_creation_error(error, "Could not create provider"))?;
(p, model_config, false)
} else {
let fallback_provider_name = config
.get_goose_provider()
.ok()
.filter(|name| name != &provider_name)
.ok_or_else(|| {
anyhow!(
"Could not create provider: provider '{}' not found",
provider_name
)
})?;
tracing::warn!(
"Session provider '{}' unavailable, falling back to '{}'",
provider_name,
fallback_provider_name
);
let fallback_model_name = config.get_goose_model().ok().ok_or_else(|| {
anyhow!("Could not configure fallback provider: missing model")
})?;
let fallback_model_config = crate::model_config::model_config_from_user_config(
&fallback_provider_name,
&fallback_model_name,
)View on GitHub (pinned to 3810898a74)
Solutions
- Set GOOSE_PROVIDER to an installed provider different from the session's, e.g. 'export GOOSE_PROVIDER=openai', then resume — goose will fall back to it
- List what is available via 'goose configure' provider selection to confirm the installed names
- Update or reinstall goose so the session's provider exists in the registry again
- If the provider is permanently gone, start a new session instead of resuming
Example fix
# before: session saved with provider 'experimental-agent' $ goose session resume Error: Could not create provider: provider 'experimental-agent' not found # after $ export GOOSE_PROVIDER=openai $ goose session resume # logs: falling back to 'openai'
Defensive patterns
Strategy: validation
Validate before calling
// Rust — before resuming, confirm the session provider exists or a distinct fallback is set
let session_provider_ok = crate::providers::get_from_registry(&provider_name).await.is_ok();
let fallback = Config::global().get_goose_provider().ok()
.filter(|n| n.as_str() != provider_name);
if !session_provider_ok && fallback.is_none() {
// choose an installed provider in config before restoring
} Prevention
- Keep GOOSE_PROVIDER set to a mainstream installed provider so a fallback always exists
- Re-check installed provider names after every goose upgrade
- Avoid resuming sessions that reference custom providers you have uninstalled
When it happens
Trigger: Resuming a session whose provider_name no longer exists (renamed or removed provider in a newer goose version, or a custom/bundled provider uninstalled) while GOOSE_PROVIDER is unset or set to that same missing provider.
Common situations: Version upgrades that rename or drop providers; sessions copied from another machine that had different providers installed; typos in GOOSE_PROVIDER; self-built or experimental providers removed from the registry.
Related errors
- Could not configure agent: missing provider
- Could not resolve default model: {}
- Could not configure fallback provider: missing model
- Could not configure fallback provider: invalid model {}
- Failed to propagate mode to provider: {}
AI-assisted analysis of aaif-goose/goose@3810898a74 (2026-08-16).
Data as JSON: /api/errors/02e9e5aff3ac809d.
Report an issue: GitHub.