Hmbown/CodeWhale · error
custom provider id cannot be empty
Error message
custom provider id cannot be empty
What it means
Error "custom provider id cannot be empty" thrown in Hmbown/CodeWhale.
Source
Thrown at crates/tui/src/config.rs:11007
&& identity.key.trim() == ApiProvider::Custom.as_str()
&& identity.persisted_id().is_none();
if matches!(provider, ApiProvider::Deepseek | ApiProvider::DeepseekCN) {
return save_api_key(api_key);
}
if is_legacy_literal_custom {
return save_root_api_key_for_secret_slot(api_key, "custom", false);
}
let api_key = api_key.trim();
anyhow::ensure!(!api_key.is_empty(), "Refusing to save an empty API key.");
let config_path =
credential_config_path().context("Failed to resolve config path for provider API key.")?;
ensure_parent_dir(&config_path)?;
let key_inside = if provider == ApiProvider::Custom {
let key = identity.key.trim();
anyhow::ensure!(!key.is_empty(), "custom provider id cannot be empty");
key
} else {
provider_config_key(provider).context("provider api key table")?
};
// A legacy, manually-selected Kimi CLI import implicitly routed Moonshot
// traffic to Kimi Code. Once the user replaces that import with the
// supported API-key route, persist the endpoint before changing auth_mode
// so the key is not silently sent to the ordinary Moonshot endpoint.
// Respect an explicit user-owned endpoint.
let pin_kimi_code_base_url = provider == ApiProvider::Moonshot
&& route_config
.provider_config_for(provider)
.is_some_and(|entry| {
provider_config_uses_kimi_imported_token(entry)
&& entry
.base_url
.as_deref()
.is_none_or(|base_url| base_url.trim().is_empty())View on GitHub (pinned to 8880682c63)
When it happens
Trigger: Thrown at crates/tui/src/config.rs:11007 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/a910be1ac1bb868c.
Report an issue: GitHub.