{"record":{"id":"0b42e0cfae84df34","repo":"zed-industries/zed","slug":"provider-not-found-0b42e0","errorCode":null,"errorMessage":"Provider {} not found","messagePattern":"Provider (.+?) not found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/eval_cli/src/main.rs","lineNumber":455,"sourceCode":"        let should_wait_for_discovery =\n            selected.provider == ANTHROPIC_PROVIDER_ID || !selected_provider_has_models;\n\n        if !should_wait_for_discovery || started_at.elapsed() >= MODEL_DISCOVERY_TIMEOUT {\n            return Err(cx.update(|cx| model_not_found_error(&selected_model_name(selected), cx)));\n        }\n\n        cx.background_executor()\n            .timer(MODEL_DISCOVERY_POLL_INTERVAL)\n            .await;\n    }\n}\n\nfn ensure_provider_authenticated(selected: &SelectedModel, cx: &gpui::App) -> Result<()> {\n    let registry = LanguageModelRegistry::global(cx);\n    let provider = registry\n        .read(cx)\n        .provider(&selected.provider)\n        .ok_or_else(|| anyhow::anyhow!(\"Provider {} not found\", selected.provider.0))?;\n\n    anyhow::ensure!(\n        provider.is_authenticated(cx),\n        \"Provider {} is not authenticated\",\n        selected.provider.0\n    );\n\n    Ok(())\n}\n\nfn find_available_model(\n    selected: &SelectedModel,\n    cx: &gpui::App,\n) -> Option<Arc<dyn LanguageModel>> {\n    let registry = LanguageModelRegistry::global(cx);\n    let models = registry.read(cx).available_models(cx).collect::<Vec<_>>();\n\n    if let Some(model) = models","sourceCodeStart":437,"sourceCodeEnd":473,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/eval_cli/src/main.rs#L437-L473","documentation":"ensure_provider_authenticated looked up the provider id from the selected model spec in the global LanguageModelRegistry and found no matching provider. The provider portion of the model name (e.g. 'anthropic') does not correspond to any registered/built-in provider, so authentication cannot even be checked.","triggerScenarios":"Thrown at crates/eval_cli/src/main.rs:455 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a provider id that exists in the registry (check available providers in settings)","Register the custom/OpenAI-compatible provider via configuration before referencing it in --model"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}