tinyhumansai/openhuman · error · anyhow::Error

unsupported local provider string '{provider}'

Error message

unsupported local provider string '{provider}'

What it means

Returned by create_local_chat_model_from_string when the provider string does not match any known local-runtime provider scheme; the Option-based resolver returned None and the caller converted it into this anyhow error. Used by setup/probe paths that run before the desktop session gate.

Source

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

            auth,
            &model,
            &unsupported,
            temp,
            None,
        );
        return Some(Ok((chat, model)));
    }
    None
}

/// Build a crate-native local-runtime model for setup/probe calls that run
/// before the desktop session gate is established.
pub(crate) fn create_local_chat_model_from_string(
    provider: &str,
    config: &Config,
) -> anyhow::Result<(Arc<dyn ChatModel<()>>, String)> {
    try_create_local_runtime_chat_model_from_string("chat", provider, config, false)
        .ok_or_else(|| anyhow::anyhow!("unsupported local provider string '{provider}'"))?
}

/// Verify the user has an active OpenHuman backend session.
///
/// Without this check, an unregistered user can configure every workload
/// to use a custom cloud provider and bypass the session requirement
/// entirely.  This function ensures that custom providers (Ollama,
/// `<slug>:<model>`) are only reachable when the workspace holds a valid
/// `app-session` JWT.
///
/// `pub(crate)`: also reused directly by the flows provider-connectivity
/// author gate (issue B45, `openhuman::flows::ops::evaluate_inference_readiness`)
/// as its Layer 1 sync session check, so the author-time gate and this
/// construction-time chokepoint can never diverge on what "session active"
/// means.
pub(crate) fn verify_session_active(config: &Config) -> anyhow::Result<()> {
    // AgentBox marketplace containers run headless with no desktop
    // `app-session` JWT — the deployment is operator-controlled and ships its

View on GitHub (pinned to 7491200858)

Solutions

  1. Use a supported local provider string (e.g. an ollama://, lmstudio, or llama.cpp-style local endpoint identifier as documented for local inference)
  2. If targeting a cloud provider, use the cloud provider resolution path instead of the local-runtime factory
Defensive patterns

Strategy: validation

When it happens

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