tinyhumansai/openhuman · error
Missing required parameter: urls (a non-empty list of page U
Error message
Missing required parameter: urls (a non-empty list of page URLs)
What it means
collect_urls found neither a `urls` array with usable entries nor a `url` string after normalization — the argument accepted for the one-document case also came back empty. Pure argument-shape validation before any network call.
Source
Thrown at src/openhuman/search/tools/exa.rs:655
client: ExaClient::new(api_key, api_url, max_results, timeout_secs),
}
}
/// Accept either a `urls` array or a single `url` string, so the agent can
/// call this the obvious way for the one-document case.
fn collect_urls(args: &Value) -> anyhow::Result<Vec<String>> {
let urls: Vec<String> = match args.get("urls") {
Some(Value::Array(items)) => items
.iter()
.filter_map(|v| non_empty(v.as_str()))
.collect::<Vec<_>>(),
Some(Value::String(single)) => non_empty(Some(single)).into_iter().collect(),
_ => non_empty(args.get("url").and_then(Value::as_str))
.into_iter()
.collect(),
};
if urls.is_empty() {
anyhow::bail!("Missing required parameter: urls (a non-empty list of page URLs)");
}
Ok(urls)
}
}
#[async_trait]
impl Tool for ExaGetContentsTool {
fn name(&self) -> &str {
"exa_get_contents"
}
fn description(&self) -> &str {
"Retrieve the full crawled contents of one or more URLs using Exa. Returns page text \
and, on request, a summary or query-relevant highlights per URL."
}
fn parameters_schema(&self) -> Value {
json!({View on GitHub (pinned to 7491200858)
Solutions
- Re-issue the call with a non-empty `urls` array or a single non-empty `url` string
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/search/tools/exa.rs:655 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/b91643950b967baf.
Report an issue: GitHub.