{"record":{"id":"4bcb983740ca3246","repo":"zeroclaw-labs/zeroclaw","slug":"no-configured-model-verified-for-target-model-prov","errorCode":null,"errorMessage":"No configured model verified for target model_provider","messagePattern":"No configured model verified for target model_provider","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-runtime/src/doctor/mod.rs","lineNumber":990,"sourceCode":"                        );\n                    }\n                    _ => {\n                        warn += 1;\n                        println!(\n                            \"    model: {model}  ⚠️  unverified: {}\",\n                            truncate_for_display(&text, 140)\n                        );\n                    }\n                }\n            }\n        }\n        println!();\n    }\n\n    if verify {\n        println!(\"  Connectivity: {ok} ok, {warn} warning, {error} errors\");\n        if provider_override.is_some() && ok == 0 {\n            anyhow::bail!(\"No configured model verified for target model_provider\");\n        }\n    } else {\n        let n = entries.len();\n        println!(\"  {n} provider{} configured\", if n == 1 { \"\" } else { \"s\" });\n    }\n\n    Ok(())\n}\n\npub fn run_traces(\n    config: &Config,\n    id: Option<&str>,\n    event_filter: Option<&str>,\n    contains: Option<&str>,\n    limit: usize,\n) -> Result<()> {\n    let path = crate::observability::runtime_trace::resolve_trace_path(\n        &config.observability,","sourceCodeStart":972,"sourceCodeEnd":1008,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-runtime/src/doctor/mod.rs#L972-L1008","documentation":"In verify (--check) mode, run_configured_models tests each configured model and counts ok/warning/error outcomes. When a provider override was supplied and ok == 0, no model under that provider verified successfully, so the command exits with this error; per-model error details are printed in the table above it.","triggerScenarios":"Configured-models verification with both --check and a provider filter where every model under that provider fails verification (bad key, unreachable endpoint, wrong model id).","commonSituations":"A wrong api_key fails all models of a provider at once; the model id in config was retired by the provider; regional network blocks to the provider endpoint.","solutions":["Check the provider api_key and endpoint first — a single bad credential fails every model at once","Fix or remove stale model ids under the provider","Re-run --check and confirm at least one model verifies"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// cheap pre-flight: credentials present for every model under the provider\nif let Some(alias) = provider_override {\n    if let Some(entry) = config.providers.models.get(alias) {\n        if entry.api_key.as_deref().map(str::trim).unwrap_or(\"\").is_empty() {\n            anyhow::bail!(\"provider '{alias}' has no api_key — verification will fail for all its models\");\n        }\n    }\n}","typeGuard":null,"tryCatchPattern":"match zeroclaw_runtime::doctor::run_configured_models(&config, Some(&alias), true).await {\n    Err(err) if err.to_string().contains(\"No configured model verified\") => {\n        eprintln!(\"zero models under '{alias}' verified — check api_key, endpoint, and model ids (details above)\");\n    }\n    other => other?,\n}","preventionTips":["A single bad credential fails every model under a provider — check auth before individual model ids","Retire model ids promptly when a provider deprecates them, and re-run --check after config edits"],"tags":["doctor","model-providers","network","verification"],"backgroundTag":"connectivity-check-failed","analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}