{"record":{"id":"bbfce9e71f233788","repo":"aaif-goose/goose","slug":"provider-check-failed","errorCode":null,"errorMessage":"provider check failed","messagePattern":"provider check failed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/goose-cli/src/commands/info.rs","lineNumber":269,"sourceCode":"                        ),\n                        label_padding,\n                    );\n                }\n                _ => {\n                    print_aligned(\n                        \"Check:\",\n                        &format!(\"{} {}\", style(\"FAILED\").red().bold(), error),\n                        label_padding,\n                    );\n                }\n            },\n        }\n\n        // Propagate non-zero exit status so automation (CI scripts, install\n        // checks, health probes) can rely on `goose info --check` as a\n        // pre-flight verifier.\n        if result.is_err() {\n            return Err(anyhow!(\"provider check failed\"));\n        }\n    }\n\n    Ok(())\n}\n","sourceCodeStart":251,"sourceCodeEnd":275,"githubUrl":"https://github.com/aaif-goose/goose/blob/3810898a7447ec3299be72e223d3570a7aabf0ab/crates/goose-cli/src/commands/info.rs#L251-L275","documentation":"`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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"# CI pre-flight gate\n- name: Verify goose provider\n  run: goose info --check\n# non-zero exit fails the step automatically","handlingStrategy":"validation","validationCode":"# Use the check itself as a gate before dependent steps\nif ! goose info --check; then\n  echo 'provider pre-flight failed' >&2\n  exit 1\nfi","typeGuard":null,"tryCatchPattern":"# Capture output, fail on non-zero exit, surface the FAILED line\nset +e; OUT=$(goose info --check 2>&1); RC=$?; set -e\nif [ \"$RC\" -ne 0 ]; then printf '%s\\n' \"$OUT\" | grep -E 'FAILED|Check:'; exit \"$RC\"; fi","preventionTips":["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"],"tags":["health-check","provider","ci","authentication","cli"],"backgroundTag":null,"analyzedSha":"3810898a7447ec3299be72e223d3570a7aabf0ab","analyzedAt":"2026-08-16T10:14:26.282Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}