tinyhumansai/openhuman · error
Provider name cannot be empty
Error message
Provider name cannot be empty
What it means
normalize_provider rejects a provider string that is empty or whitespace-only after trimming. It is a shared input-validation guard used before any profile lookup, activation, or removal, so an unpopulated provider argument never reaches the store and cannot match or mutate an arbitrary profile.
Source
Thrown at src/openhuman/security/credentials/core.rs:114
) -> Result<Option<String>> {
let profile = self.get_profile(provider, profile_override)?;
let Some(profile) = profile else {
return Ok(None);
};
let credential = match profile.kind {
AuthProfileKind::Token => profile.token,
AuthProfileKind::OAuth => profile.token_set.map(|t| t.access_token),
};
Ok(credential.filter(|t| !t.trim().is_empty()))
}
}
pub fn normalize_provider(provider: &str) -> Result<String> {
let normalized = provider.trim().to_ascii_lowercase();
if normalized.is_empty() {
anyhow::bail!("Provider name cannot be empty");
}
Ok(normalized)
}
pub fn state_dir_from_config(config: &Config) -> PathBuf {
config
.config_path
.parent()
.map_or_else(|| PathBuf::from("."), PathBuf::from)
}
pub fn default_profile_id(provider: &str) -> String {
profile_id(provider, DEFAULT_PROFILE_NAME)
}
fn resolve_requested_profile_id(provider: &str, requested: &str) -> String {
if requested.contains(':') {
requested.to_string()View on GitHub (pinned to 7491200858)
Solutions
- Supply a non-empty provider name (e.g. "github", "openai").
- Check the upstream source of the provider value for an unset or blank variable/config field.
- Default the provider explicitly at the call site when it is optional.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/security/credentials/core.rs:114 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/57e8a3303b1b6e10.
Report an issue: GitHub.