{"record":{"id":"c5b8244bd40aec25","repo":"tinyhumansai/openhuman","slug":"missing-required-parameter-processor","errorCode":null,"errorMessage":"Missing required parameter: processor","messagePattern":"Missing required parameter: processor","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/search/tools/parallel.rs","lineNumber":699,"sourceCode":"                \"timeout_seconds\": {\n                    \"type\": \"integer\",\n                    \"minimum\": 10,\n                    \"maximum\": 900,\n                    \"description\": \"Max time to wait inline (default 600)\"\n                }\n            },\n            \"required\": [\"input\", \"processor\"]\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let input = args\n            .get(\"input\")\n            .ok_or_else(|| anyhow::anyhow!(\"Missing required parameter: input\"))?;\n        let processor = args\n            .get(\"processor\")\n            .and_then(|v| v.as_str())\n            .ok_or_else(|| anyhow::anyhow!(\"Missing required parameter: processor\"))?;\n\n        let mut body = json!({\n            \"input\": input,\n            \"processor\": processor,\n            \"wait\": true,\n        });\n        if let Some(schema) = args.get(\"output_schema\") {\n            body[\"outputSchema\"] = schema.clone();\n        }\n        if let Some(t) = args.get(\"timeout_seconds\").and_then(|v| v.as_u64()) {\n            body[\"timeoutSeconds\"] = json!(t.clamp(10, 900));\n        }\n\n        tracing::info!(\"[parallel_research] processor={}\", processor);\n\n        match self\n            .client\n            .post::<ResearchResponse>(\"/agent-integrations/parallel/research\", &body)","sourceCodeStart":681,"sourceCodeEnd":717,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/search/tools/parallel.rs#L681-L717","documentation":"Argument-validation guard in the same processor tool, immediately after the input check: 'processor' is absent or not a string (and_then(as_str) fails). The schema requires [input, processor] with processor naming which Parallel processor to run. Nothing has been dispatched yet; the error is returned to the calling model as a normal retryable tool failure.","triggerScenarios":"Thrown at src/openhuman/search/tools/parallel.rs:699 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry including 'processor' as a string naming a valid Parallel processor.","Consult the tool schema/description for the accepted processor identifiers.","Ensure the value is a plain string, not a nested object or enum wrapper."],"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-14T00:17:10.932Z"}