{"record":{"id":"b06973d6fdfe717b","repo":"tinyhumansai/openhuman","slug":"missing-required-parameter-search-queries","errorCode":null,"errorMessage":"Missing required parameter: search_queries","messagePattern":"Missing required parameter: search_queries","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/search/tools/parallel.rs","lineNumber":183,"sourceCode":"            },\n            \"required\": [\"objective\", \"search_queries\"]\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let objective = args\n            .get(\"objective\")\n            .and_then(|v| v.as_str())\n            .ok_or_else(|| anyhow::anyhow!(\"Missing required parameter: objective\"))?;\n\n        if objective.trim().is_empty() {\n            return Ok(ToolResult::error(\"objective cannot be empty\"));\n        }\n\n        let search_queries = args\n            .get(\"search_queries\")\n            .and_then(|v| v.as_array())\n            .ok_or_else(|| anyhow::anyhow!(\"Missing required parameter: search_queries\"))?;\n\n        if search_queries.is_empty() {\n            return Ok(ToolResult::error(\n                \"search_queries must contain at least one query\",\n            ));\n        }\n\n        let mut queries: Vec<&str> = Vec::with_capacity(search_queries.len());\n        for (i, v) in search_queries.iter().enumerate() {\n            match v.as_str() {\n                Some(s) if !s.trim().is_empty() => queries.push(s),\n                Some(_) => {\n                    return Ok(ToolResult::error(format!(\n                        \"search_queries[{i}] is an empty string\"\n                    )));\n                }\n                None => {\n                    return Ok(ToolResult::error(format!(","sourceCodeStart":165,"sourceCodeEnd":201,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/search/tools/parallel.rs#L165-L201","documentation":"Argument-validation guard in the Parallel search tool's execute: 'search_queries' is absent or not a JSON array (and_then(as_array) yields None). The schema requires it alongside objective. Fires when the calling model omits the field or passes a string/object instead of an array of strings.","triggerScenarios":"Thrown at src/openhuman/search/tools/parallel.rs:183 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry with 'search_queries' as an array of query strings (e.g. [\"rust async runtime\"]).","If a single query was intended, wrap it in a one-element array.","Check the advertised JSON schema to remind the model of the array type."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}