Hmbown/CodeWhale · error
invalid provider_models.{provider_id} value: {err}
Error message
invalid provider_models.{provider_id} value: {err} What it means
Error "invalid provider_models.{provider_id} value: {err}" thrown in Hmbown/CodeWhale.
Source
Thrown at crates/tui/src/config_ui.rs:835
let document_identity = config
.resolve_provider_identity(&doc.runtime.provider)
.map_err(anyhow::Error::msg)?;
if document_identity.provider != app.api_provider
|| document_identity.key != app.provider_identity_for_persistence()
{
bail!(
"provider changed from '{}' to '{}' while editing; switch providers with /provider, then reopen /config",
app.provider_identity_for_persistence(),
doc.runtime.provider
);
}
validate_and_normalize_model(config, app.api_provider, &doc.runtime.model)?;
for (provider_id, model) in &doc.settings.provider_models {
let identity = config
.resolve_provider_identity(provider_id)
.map_err(anyhow::Error::msg)?;
validate_and_normalize_model(config, identity.provider, model)
.map_err(|err| anyhow::anyhow!("invalid provider_models.{provider_id} value: {err}"))?;
}
if doc.config.mcp_config_path.trim().is_empty() {
bail!("mcp_config_path cannot be empty");
}
let _ = theme_setting_for_document(doc)?;
Ok(())
}
fn theme_setting_for_document(doc: &ConfigUiDocument) -> Result<String> {
let setting = if doc.settings.theme == UiThemeValue::Custom {
let name = doc
.settings
.custom_theme_name
.as_deref()
.map(str::trim)
.filter(|name| !name.is_empty())
.ok_or_else(|| anyhow::anyhow!("custom theme requires custom_theme_name"))?;
format!("{}{}", crate::palette::USER_THEME_PREFIX, name)View on GitHub (pinned to 8880682c63)
When it happens
Trigger: Thrown at crates/tui/src/config_ui.rs:835 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Hmbown/CodeWhale@8880682c63 (2026-08-16).
Data as JSON: /api/errors/d302ae54767c70b3.
Report an issue: GitHub.