{"record":{"id":"0f3184d7eae48954","repo":"tinyhumansai/openhuman","slug":"memory-tree-query-source-e","errorCode":null,"errorMessage":"memory_tree_query_source: {e}","messagePattern":"memory_tree_query_source: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/memory/query/query_source.rs","lineNumber":65,"sourceCode":"                    \"type\": \"integer\",\n                    \"minimum\": 0,\n                    \"description\": \"Max hits to return (default 10).\"\n                }\n            }\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        log::debug!(\"[tool][memory_tree] query_source invoked\");\n        let req: QuerySourceRequest = serde_json::from_value(args)\n            .map_err(|e| anyhow::anyhow!(\"invalid arguments for memory_tree_query_source: {e}\"))?;\n        // Validate arguments before touching config/disk — `SourceKind::parse`\n        // is pure, so a bad `source_kind` must fail with the parse error\n        // regardless of workspace state.\n        let source_kind = match req.source_kind.as_deref() {\n            Some(s) => Some(\n                SourceKind::parse(s)\n                    .map_err(|e| anyhow::anyhow!(\"memory_tree_query_source: {e}\"))?,\n            ),\n            None => None,\n        };\n        let resp = match req.source_id.as_deref() {\n            Some(source_id) => {\n                backend::query_source_scope(\n                    Some(source_id),\n                    req.time_window_days,\n                    req.query.as_deref(),\n                    req.limit.unwrap_or(10),\n                )\n                .await?\n            }\n            None => {\n                backend::query_source_kind(\n                    source_kind,\n                    req.time_window_days,\n                    req.query.as_deref(),","sourceCodeStart":47,"sourceCodeEnd":83,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/memory/query/query_source.rs#L47-L83","documentation":"Argument-deserialization wrapper in the memory_tree_query_source tool's execute: serde_json::from_value could not shape args into QuerySourceRequest (wrong types or missing required fields for the source query). Generic sentinel carrying the serde detail in `{e}`. The comment below it notes args are validated before config/disk access, so no store was touched.","triggerScenarios":"Thrown at src/openhuman/memory/query/query_source.rs:65 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry after driver binding completes at boot","Inspect the underlying binding error in core logs","Confirm a retrieval-capable driver is configured"],"exampleFix":null,"handlingStrategy":"retry","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"}