tinyhumansai/openhuman · error
SearXNG arguments must be an object
Error message
SearXNG arguments must be an object
What it means
Generic shape guard in parse_search_args: the serde_json::Value passed as the SearXNG tool's arguments is not a JSON object (e.g. a bare string, array, or null), so named field lookup for query/categories/language/max_results is impossible. Sentinel-style validation helper; the faulting input is any non-object args value passed by the model or caller.
Source
Thrown at src/openhuman/search/tools/searxng.rs:386
})
})
.take(max_results)
.collect()
}
fn first_non_empty_trimmed(values: impl IntoIterator<Item = Option<String>>) -> String {
values
.into_iter()
.flatten()
.map(|value| value.trim().to_string())
.find(|value| !value.is_empty())
.unwrap_or_default()
}
fn parse_search_args(args: serde_json::Value) -> anyhow::Result<SearxngSearchArgs> {
let object = args
.as_object()
.ok_or_else(|| anyhow::anyhow!("SearXNG arguments must be an object"))?;
let query = object
.get("query")
.and_then(|value| value.as_str())
.map(str::trim)
.filter(|value| !value.is_empty())
.ok_or_else(|| anyhow::anyhow!("Missing required parameter: query"))?
.to_string();
let categories = match object.get("categories") {
Some(value) if value.is_null() => Vec::new(),
Some(value) => value
.as_array()
.ok_or_else(|| anyhow::anyhow!("categories must be an array of strings"))?
.iter()
.map(|item| {
item.as_str()
.map(str::to_string)
.ok_or_else(|| anyhow::anyhow!("categories must contain only strings"))
})View on GitHub (pinned to 7491200858)
Solutions
- Pass arguments as a JSON object, e.g. {"query": "..."}.
- If arguments are generated by the model, tighten the tool schema/prompt so it emits an object.
- Check the calling code for accidental double-wrapping or stringified JSON.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/search/tools/searxng.rs:386 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/0481d9443c179204.
Report an issue: GitHub.