{"record":{"id":"fc36f26be2c6986d","repo":"tinyhumansai/openhuman","slug":"missing-namespace-parameter-fc36f2","errorCode":null,"errorMessage":"Missing 'namespace' parameter","messagePattern":"Missing 'namespace' parameter","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/memory/tools/recall.rs","lineNumber":63,"sourceCode":"                },\n                \"namespace\": {\n                    \"type\": \"string\",\n                    \"description\": \"Namespace to search (e.g. 'global', 'background', 'autocomplete', or 'skill-{id}')\"\n                },\n                \"limit\": {\n                    \"type\": \"integer\",\n                    \"description\": \"Max results to return (default: 5)\"\n                }\n            },\n            \"required\": [\"namespace\", \"query\"]\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let namespace = args\n            .get(\"namespace\")\n            .and_then(|v| v.as_str())\n            .ok_or_else(|| anyhow::anyhow!(\"Missing 'namespace' parameter\"))?\n            .trim();\n        if namespace.is_empty() {\n            return Err(anyhow::anyhow!(\"namespace cannot be empty\"));\n        }\n        let query = args\n            .get(\"query\")\n            .and_then(|v| v.as_str())\n            .ok_or_else(|| anyhow::anyhow!(\"Missing 'query' parameter\"))?\n            .trim();\n        if query.is_empty() {\n            return Err(anyhow::anyhow!(\"query cannot be empty\"));\n        }\n\n        #[allow(clippy::cast_possible_truncation)]\n        let limit = args\n            .get(\"limit\")\n            .and_then(serde_json::Value::as_u64)\n            .map_or(5, |v| v as usize);","sourceCodeStart":45,"sourceCodeEnd":81,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/memory/tools/recall.rs#L45-L81","documentation":"The memory recall tool was invoked without a `namespace` string argument. `namespace` is first in the schema's `required` list (along with `query`) and is read before any search runs, so this is a missing-argument guard: the args object had no `namespace` key or a non-string value, and the store lookup cannot proceed without knowing which namespace to search.","triggerScenarios":"Thrown at src/openhuman/memory/tools/recall.rs:63 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Include `namespace` in the tool call, e.g. 'global', 'background', 'autocomplete', or 'skill-{id}'","Ensure the value is a JSON string, not null or another type","Verify required args against the tool schema before invoking"],"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"}