aaif-goose/goose · error
provider check failed
Error message
provider check failed
What it means
`goose info --check` runs provider health checks and prints per-provider OK/FAILED lines. If any check fails, this error is returned deliberately so the process exits non-zero, letting automation (CI scripts, install checks, health probes) rely on the command as a pre-flight verifier, as the code comment states.
Source
Thrown at crates/goose-cli/src/commands/info.rs:269
),
label_padding,
);
}
_ => {
print_aligned(
"Check:",
&format!("{} {}", style("FAILED").red().bold(), error),
label_padding,
);
}
},
}
// Propagate non-zero exit status so automation (CI scripts, install
// checks, health probes) can rely on `goose info --check` as a
// pre-flight verifier.
if result.is_err() {
return Err(anyhow!("provider check failed"));
}
}
Ok(())
}
View on GitHub (pinned to 3810898a74)
Solutions
- Read the FAILED line printed just above the error — it identifies the provider and cause
- Fix credentials via `goose configure` or the provider's environment variable
- Verify network egress to the provider endpoint from this host
- Re-run `goose info --check` and require exit code 0 before continuing
Example fix
# CI pre-flight gate - name: Verify goose provider run: goose info --check # non-zero exit fails the step automatically
Defensive patterns
Strategy: validation
Validate before calling
# Use the check itself as a gate before dependent steps if ! goose info --check; then echo 'provider pre-flight failed' >&2 exit 1 fi
Try / catch
# Capture output, fail on non-zero exit, surface the FAILED line set +e; OUT=$(goose info --check 2>&1); RC=$?; set -e if [ "$RC" -ne 0 ]; then printf '%s\n' "$OUT" | grep -E 'FAILED|Check:'; exit "$RC"; fi
Prevention
- Wire `goose info --check` into CI after every credential change
- Monitor provider deprecations for configured model ids
- Keep a known-good config snapshot to diff against when checks fail
When it happens
Trigger: Running `goose info --check` with an invalid or expired API key, an unreachable provider endpoint, or a misconfigured model id for the active provider; the FAILED line printed above names the provider and underlying error.
Common situations: CI pre-flight after secrets rotation; egress blocked by proxy/firewall; stale config pointing at a deprecated model id; rotated keys not yet reflected in the keyring.
Related errors
- OAuth authentication failed for {}: {}
- Failed to create provider for OAuth: {}
- {label} subprocess exited with status {}: {}
- Failed to create model configuration: {e}
- Job name must start with a letter or number and contain only
AI-assisted analysis of aaif-goose/goose@3810898a74 (2026-08-16).
Data as JSON: /api/errors/bbfce9e71f233788.
Report an issue: GitHub.