tinyhumansai/openhuman · error

`{key}` must be an array of strings

Error message

`{key}` must be an array of strings

What it means

Error "`{key}` must be an array of strings" thrown in tinyhumansai/openhuman.

Source

Thrown at src/openhuman/agent/tools/todo.rs:295

        approval_mode,
        acceptance_criteria: optional_string_array(args, "acceptanceCriteria")?,
        evidence: optional_string_array(args, "evidence")?,
        notes: optional_string(args, "notes"),
        blocker: optional_string(args, "blocker"),
        source_metadata: None,
    })
}

fn optional_string_array(
    args: &serde_json::Value,
    key: &str,
) -> anyhow::Result<Option<Vec<String>>> {
    let Some(value) = args.get(key) else {
        return Ok(None);
    };
    let values = value
        .as_array()
        .ok_or_else(|| anyhow::anyhow!("`{key}` must be an array of strings"))?;
    values
        .iter()
        .map(|item| {
            item.as_str()
                .map(|s| s.to_string())
                .ok_or_else(|| anyhow::anyhow!("`{key}` must be an array of strings"))
        })
        .collect::<anyhow::Result<Vec<_>>>()
        .map(Some)
}

#[cfg(test)]
mod tests {
    use super::*;
    use serde_json::Value;

    /// Serialize tests that share the process-global scratch store with
    /// `todos::ops` tests. Same lock — otherwise the two test modules race

View on GitHub (pinned to a221052e0d)

When it happens

Trigger: Thrown at src/openhuman/agent/tools/todo.rs:295 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@a221052e0d (2026-08-16). Data as JSON: /api/errors/943b12aedc52f0f4. Report an issue: GitHub.