{"record":{"id":"af2a958e77bd0435","repo":"tinyhumansai/openhuman","slug":"invalid-arguments-for-memory-hybrid-search-e","errorCode":null,"errorMessage":"invalid arguments for memory_hybrid_search: {e}","messagePattern":"invalid arguments for memory_hybrid_search: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/memory/tools/search/hybrid_search.rs","lineNumber":98,"sourceCode":"                    \"description\": \"Weight profile: 'balanced' (default), 'semantic' (vector-heavy), 'lexical' (keyword-heavy), 'graph_first' (relationship-heavy).\"\n                },\n                \"limit\": {\n                    \"type\": \"integer\",\n                    \"minimum\": 1,\n                    \"maximum\": 50,\n                    \"description\": \"Max results (default 10).\"\n                },\n                \"include_breakdown\": {\n                    \"type\": \"boolean\",\n                    \"description\": \"Show per-signal score breakdown for each result (default false).\"\n                }\n            }\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let parsed: Args = serde_json::from_value(args)\n            .map_err(|e| anyhow::anyhow!(\"invalid arguments for memory_hybrid_search: {e}\"))?;\n\n        if parsed.query.trim().is_empty() {\n            return Err(anyhow::anyhow!(\n                \"memory_hybrid_search: query cannot be empty\"\n            ));\n        }\n        if parsed.namespace.trim().is_empty() {\n            return Err(anyhow::anyhow!(\n                \"memory_hybrid_search: namespace cannot be empty\"\n            ));\n        }\n\n        let profile = WeightProfile::by_name(&parsed.mode).ok_or_else(|| {\n            log::warn!(\n                \"[tool][memory_hybrid_search] rejected unknown mode={}\",\n                parsed.mode\n            );\n            anyhow::anyhow!(","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/memory/tools/search/hybrid_search.rs#L80-L116","documentation":"Argument-deserialization wrapper in the memory_hybrid_search tool's execute: args failed to deserialize into the tool's Args struct (bad types for query/profile/limit/include_breakdown — e.g. limit outside the declared 1–50 is rejected later, but a non-integer fails here). Generic sentinel with the serde detail in `{e}`.","triggerScenarios":"Thrown at src/openhuman/memory/tools/search/hybrid_search.rs:98 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Include query and namespace strings","Use mode values balanced/semantic/lexical/graph_first and limit 1-50","Fix malformed JSON"],"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"}