tinyhumansai/openhuman · error

[chat-factory] no cloud provider configured for slug '{}' (r

Error message

[chat-factory] no cloud provider configured for slug '{}' (role '{}') — add an entry with that slug to cloud_providers in config.toml. Configured slugs: [{}]

What it means

resolve_cloud_slug could not find any entry in the config's cloud_providers list whose slug equals the requested one. The message lists the currently configured slugs so the mismatch is immediately visible. The provider/model pair therefore cannot be routed to any configured cloud backend.

Source

Thrown at src/openhuman/inference/provider/factory.rs:2154

    key: String,
    codex: crate::openhuman::inference::provider::openai_codex::OpenAiCodexRouting,
}

fn resolve_cloud_slug<'a>(
    role: &str,
    slug: &str,
    model: &str,
    config: &'a Config,
) -> anyhow::Result<CloudSlugResolution<'a>> {
    let entry = config.cloud_providers.iter().find(|e| e.slug == slug);

    let entry = entry.ok_or_else(|| {
        let known: Vec<&str> = config
            .cloud_providers
            .iter()
            .map(|e| e.slug.as_str())
            .collect();
        anyhow::anyhow!(
            "[chat-factory] no cloud provider configured for slug '{}' (role '{}') — \
             add an entry with that slug to cloud_providers in config.toml. \
             Configured slugs: [{}]",
            slug,
            role,
            known.join(", ")
        )
    })?;

    // Resolve effective model: use provided model if non-empty, else fall back
    // to the entry's legacy default_model (if any), else empty → error.
    let mut effective_model = if model.trim().is_empty() {
        entry.default_model.clone().unwrap_or_default()
    } else {
        model.to_string()
    };

    // Guard: if effective_model is still empty after fallback, bail with an

View on GitHub (pinned to 7491200858)

Solutions

  1. Add a [[cloud_providers]] entry with the missing slug to config.toml
  2. Fix a typo in the slug referenced by the role's provider string
  3. Copy one of the already-configured slugs listed in the error if the intended backend is already set up
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/inference/provider/factory.rs:2154 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/fe92a587c01ea9ac. Report an issue: GitHub.