{"record":{"id":"62a9ad50686ca2c5","repo":"tinyhumansai/openhuman","slug":"invalid-arguments-for-memory-tools-put-e","errorCode":null,"errorMessage":"invalid arguments for memory_tools_put: {e}","messagePattern":"invalid arguments for memory_tools_put: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/memory/tools/tool_memory/put.rs","lineNumber":98,"sourceCode":"                    \"description\": \"Free-text rule, edict, or learning to pin.\"\n                },\n                \"priority\": {\n                    \"type\": \"string\",\n                    \"enum\": [\"critical\", \"high\", \"normal\"],\n                    \"description\": \"How aggressively to surface the rule. Default: normal.\"\n                },\n                \"tags\": {\n                    \"type\": \"array\",\n                    \"items\": { \"type\": \"string\" },\n                    \"description\": \"Optional free-form tags (e.g. `safety`, `permission`).\"\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_tools_put: {e}\"))?;\n        log::debug!(\n            \"[tool][memory_tools] put tool_name={} priority={:?} tags={}\",\n            parsed.tool_name,\n            parsed.priority,\n            parsed.tags.len()\n        );\n        let guard = active_memory_guard()\n            .await\n            .map_err(|e| anyhow::anyhow!(\"memory_tools_put: {e}\"))?;\n        let family = guard\n            .as_tool_memory()\n            .ok_or_else(|| anyhow::anyhow!(\"memory_tools_put: {NO_TOOL_MEMORY}\"))?;\n        let mut rule = ToolMemoryRule::new(\n            &parsed.tool_name,\n            &parsed.rule,\n            parse_priority(parsed.priority.as_deref()),\n            ToolMemorySource::UserExplicit,\n        );","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/memory/tools/tool_memory/put.rs#L80-L116","documentation":"The `memory_tools_put` arguments failed serde deserialization into the typed `Args` struct. Required is the rule text; optional fields are `priority` (must be exactly 'critical', 'high', or 'normal') and `tags` (array of strings). Wrong enum casing, a non-array tags value, or a missing required field triggers this, with `{e}` naming the cause.","triggerScenarios":"Thrown at src/openhuman/memory/tools/tool_memory/put.rs:98 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use exact enum values for priority: 'critical', 'high', 'normal'","Send tags as an array of strings","Check `{e}` for the offending field","Include the required rule text field"],"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"}