{"record":{"id":"cdafd8782ca7188e","repo":"Hmbown/CodeWhale","slug":"model-model-is-available-from-configured-provi","errorCode":null,"errorMessage":"model `{model}` is available from configured provider route(s): {providers}. Pass `--provider <provider>` with `--model {model}` to choose one explicitly. In the TUI, use `/provider`, `/model`, or `/setup` to resolve the route before sending.","messagePattern":"model `(.+?)` is available from configured provider route\\(s\\): (.+?)\\. Pass `--provider <provider>` with `--model (.+?)` to choose one explicitly\\. In the TUI, use `/provider`, `/model`, or `/setup` to resolve the route before sending\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/lib.rs","lineNumber":10070,"sourceCode":"            );\n            return Ok(CliAutoRoute {\n                provider: selection.provider,\n                model: selection.model,\n                reasoning_effort: selection.reasoning_effort,\n                auto_controls_reasoning,\n                auto_model: false,\n            });\n        }\n\n        let candidate_providers = model_routing::explicit_route_candidate_providers(config, model);\n        if !candidate_providers.is_empty() && !candidate_providers.contains(&config.api_provider())\n        {\n            let providers = candidate_providers\n                .iter()\n                .map(|provider| provider.as_str())\n                .collect::<Vec<_>>()\n                .join(\", \");\n            bail!(\n                \"model `{model}` is available from configured provider route(s): {providers}. \\\n                 Pass `--provider <provider>` with `--model {model}` to choose one explicitly. \\\n                 In the TUI, use `/provider`, `/model`, or `/setup` to resolve the route before sending.\"\n            );\n        }\n\n        // When --model is not `auto`, fall back to the reasoning_effort\n        // declared in the user's config.toml. The previous hard-coded `None`\n        // silently dropped the user's setting on every non-auto-route exec\n        // call, which (for example) prevented vllm + Qwen3 users from\n        // disabling thinking via `reasoning_effort = \"off\"` and caused\n        // 30+ second SSE idle timeouts on trivial prompts.\n        let reasoning_effort = config\n            .reasoning_effort()\n            .map(crate::tui::app::ReasoningEffort::from_setting);\n        Ok(CliAutoRoute {\n            provider: config.api_provider(),\n            model: model.to_string(),","sourceCodeStart":10052,"sourceCodeEnd":10088,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/lib.rs#L10052-L10088","documentation":"Before a one-shot run with an explicit --model, the router computes which configured providers can serve that model (explicit_route_candidate_providers); if the active provider is not among them, it refuses instead of sending a request that would fail upstream. The message lists the candidate routes and names both remedies: --provider on the CLI, /provider //model //setup in the TUI.","triggerScenarios":"Passing --model X when X is routed only through other configured providers -- e.g., the model id is served by an openrouter/custom route while the current api_provider points elsewhere.","commonSituations":"The same model id available from several providers; the default provider was switched in config while old --model habits remained; commands copied from a teammate whose route config differs.","solutions":["Pass `--provider <one-of-the-listed>` together with --model","Or switch to a --model your current provider serves","In the TUI, resolve the route via /provider, /model, or /setup","Align the route config so your default provider serves the models you use daily"],"exampleFix":"# before\ncodewhale --model some-model -p \"hi\"\n# model `some-model` is available from configured provider route(s): openrouter, ...\n\n# after\ncodewhale --provider openrouter --model some-model -p \"hi\"","handlingStrategy":"validation","validationCode":"# in automation, always pin the provider when pinning the model\ncodewhale --provider \"$PROVIDER\" --model \"$MODEL\" ...   # both or neither","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pass --provider and --model together in scripted one-shot runs","Keep the route config small so model ids map to exactly one provider","After switching the default provider, re-check that your usual --model values still route"],"tags":["model-routing","provider","config","disambiguation"],"backgroundTag":"ambiguous-model-route","analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}