tinyhumansai/openhuman · error
voice provider '{}' does not support STT (capability: {})
Error message
voice provider '{}' does not support STT (capability: {}) What it means
The slug resolved to a configured voice provider, but its capability flags do not include STT (e.g. a TTS-only provider selected for transcription). Fails before provider construction; the message reports the actual capability.
Source
Thrown at src/openhuman/voice/factory/helpers.rs:109
/// Create an STT provider by looking up a slug in `config.voice_providers`.
pub(super) fn create_stt_provider_by_slug(
slug: &str,
model: &str,
config: &Config,
) -> anyhow::Result<Box<dyn SttProvider>> {
let entry = config
.voice_providers
.iter()
.find(|p| p.slug == slug)
.ok_or_else(|| {
anyhow::anyhow!(
"no voice provider with slug '{}' found in voice_providers",
slug
)
})?;
if !entry.capability.supports_stt() {
return Err(anyhow::anyhow!(
"voice provider '{}' does not support STT (capability: {})",
slug,
entry.capability.as_str()
));
}
let effective_model = if model.trim().is_empty() {
entry.default_stt_model.as_deref().unwrap_or("default")
} else {
model
};
let api_key = crate::openhuman::inference::provider::factory::lookup_key_for_slug(slug, config)
.unwrap_or_default();
debug!(
"{LOG_PREFIX} creating external STT provider slug={slug} model={effective_model} \
endpoint={} key_present={}",View on GitHub (pinned to 7491200858)
Solutions
- Select a provider whose capability includes STT
- Or update the entry's capability in config.toml to declare stt support
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/voice/factory/helpers.rs:109 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/22f5b9d379139173.
Report an issue: GitHub.