tinyhumansai/openhuman · error

memory_tree: unknown mode `{other}`. Valid: search_entities,

Error message

memory_tree: unknown mode `{other}`. Valid: search_entities, query_source, drill_down, cover_window, fetch_leaves, ingest_document, walk, smart_walk

What it means

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.

Source

Thrown at src/openhuman/memory/query/mod.rs:164

    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        let mode = args
            .get("mode")
            .and_then(|v| v.as_str())
            .ok_or_else(|| anyhow::anyhow!("memory_tree: `mode` is required"))?;
        log::debug!("[tool][memory_tree] mode={mode}");
        match mode {
            "search_entities" => MemoryTreeSearchEntitiesTool.execute(args).await,
            "query_source" => MemoryTreeQuerySourceTool.execute(args).await,
            "drill_down" => MemoryTreeDrillDownTool.execute(args).await,
            "cover_window" => MemoryTreeCoverWindowTool.execute(args).await,
            "fetch_leaves" => MemoryTreeFetchLeavesTool.execute(args).await,
            "ingest_document" => MemoryTreeIngestDocumentTool.execute(args).await,
            "walk" | "smart_walk" => fast_walk::run_fast_walk(args).await,
            other => {
                log::debug!("[tool][memory_tree] unknown_mode mode={other}");
                Err(anyhow::anyhow!(
                    "memory_tree: unknown mode `{other}`. Valid: search_entities, query_source, drill_down, cover_window, fetch_leaves, ingest_document, walk, smart_walk"
                ))
            }
        }
    }
}

#[cfg(test)]
mod memory_tree_dispatcher_tests {
    use super::*;
    use crate::openhuman::memory::query::test_workspace::isolated_config;
    use crate::openhuman::tools::traits::Tool;
    use serde_json::json;
    use tempfile::TempDir;

    #[test]
    fn memory_tree_tool_name_is_correct() {
        assert_eq!(MemoryTreeTool.name(), "memory_tree");

View on GitHub (pinned to 7491200858)

Solutions

  1. Use one of: search_entities, query_source, drill_down, cover_window, fetch_leaves, ingest_document, walk, smart_walk
  2. Check for typos and casing in the mode string
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/memory/query/mod.rs:164 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/ed74294e467e9065. Report an issue: GitHub.