tinyhumansai/openhuman · error

invalid provider: {e}

Error message

invalid provider: {e}

What it means

parse_provider: the 'provider' argument was present and non-empty, but ProviderSlug::parse rejected it — the string does not name a known task-source provider slug. The parser's own error detail is appended.

Source

Thrown at src/openhuman/integrations/task_sources/tools.rs:48

        .map(str::to_string)
        .ok_or_else(|| anyhow::anyhow!("missing required string argument `{key}`"))
}

fn opt_u64(args: &serde_json::Value, key: &str) -> Option<u64> {
    args.get(key).and_then(serde_json::Value::as_u64)
}

fn opt_str(args: &serde_json::Value, key: &str) -> Option<String> {
    args.get(key)
        .and_then(serde_json::Value::as_str)
        .map(str::trim)
        .filter(|s| !s.is_empty())
        .map(str::to_string)
}

fn parse_provider(args: &serde_json::Value) -> anyhow::Result<ProviderSlug> {
    let raw = read_required_str(args, "provider")?;
    ProviderSlug::parse(&raw).map_err(|e| anyhow::anyhow!("invalid provider: {e}"))
}

fn parse_filter(args: &serde_json::Value) -> anyhow::Result<FilterSpec> {
    let val = args
        .get("filter")
        .cloned()
        .ok_or_else(|| anyhow::anyhow!("missing required object argument `filter`"))?;
    serde_json::from_value(val).map_err(|e| anyhow::anyhow!("invalid filter: {e}"))
}

macro_rules! emit {
    ($outcome:expr, $name:literal) => {{
        let outcome = $outcome.map_err(|e| anyhow::anyhow!(concat!($name, ": {}"), e))?;
        Ok(ToolResult::success(serde_json::to_string(&outcome.value)?))
    }};
}

/// List configured external task sources.

View on GitHub (pinned to 7491200858)

Solutions

  1. Use a supported provider slug as listed in the tool schema/docs
  2. Check the parser detail {e} for the accepted slug list
  3. Fix casing/typo in the slug
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/integrations/task_sources/tools.rs:48 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/6fc35c0cfbb3e667. Report an issue: GitHub.