{"record":{"id":"ed74294e467e9065","repo":"tinyhumansai/openhuman","slug":"memory-tree-unknown-mode-other-valid-search","errorCode":null,"errorMessage":"memory_tree: unknown mode `{other}`. Valid: search_entities, query_source, drill_down, cover_window, fetch_leaves, ingest_document, walk, smart_walk","messagePattern":"memory_tree: unknown mode `(.+?)`\\. Valid: search_entities, query_source, drill_down, cover_window, fetch_leaves, ingest_document, walk, smart_walk","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/memory/query/mod.rs","lineNumber":164,"sourceCode":"    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let mode = args\n            .get(\"mode\")\n            .and_then(|v| v.as_str())\n            .ok_or_else(|| anyhow::anyhow!(\"memory_tree: `mode` is required\"))?;\n        log::debug!(\"[tool][memory_tree] mode={mode}\");\n        match mode {\n            \"search_entities\" => MemoryTreeSearchEntitiesTool.execute(args).await,\n            \"query_source\" => MemoryTreeQuerySourceTool.execute(args).await,\n            \"drill_down\" => MemoryTreeDrillDownTool.execute(args).await,\n            \"cover_window\" => MemoryTreeCoverWindowTool.execute(args).await,\n            \"fetch_leaves\" => MemoryTreeFetchLeavesTool.execute(args).await,\n            \"ingest_document\" => MemoryTreeIngestDocumentTool.execute(args).await,\n            \"walk\" | \"smart_walk\" => fast_walk::run_fast_walk(args).await,\n            other => {\n                log::debug!(\"[tool][memory_tree] unknown_mode mode={other}\");\n                Err(anyhow::anyhow!(\n                    \"memory_tree: unknown mode `{other}`. Valid: search_entities, query_source, drill_down, cover_window, fetch_leaves, ingest_document, walk, smart_walk\"\n                ))\n            }\n        }\n    }\n}\n\n#[cfg(test)]\nmod memory_tree_dispatcher_tests {\n    use super::*;\n    use crate::openhuman::memory::query::test_workspace::isolated_config;\n    use crate::openhuman::tools::traits::Tool;\n    use serde_json::json;\n    use tempfile::TempDir;\n\n    #[test]\n    fn memory_tree_tool_name_is_correct() {\n        assert_eq!(MemoryTreeTool.name(), \"memory_tree\");","sourceCodeStart":146,"sourceCodeEnd":182,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/memory/query/mod.rs#L146-L182","documentation":"The memory_tree dispatcher matched the mode string against its exhaustive match and fell to the catch-all arm. The value is echoed with the full valid list; new modes must be added to both the match and this message.","triggerScenarios":"Thrown at src/openhuman/memory/query/mod.rs:164 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of: search_entities, query_source, drill_down, cover_window, fetch_leaves, ingest_document, walk, smart_walk","Check for typos and casing in the mode string"],"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"}