tinyhumansai/openhuman · error

invalid arguments for memory_tree_drill_down: {e}

Error message

invalid arguments for memory_tree_drill_down: {e}

What it means

Argument-deserialization wrapper in the memory_tree_drill_down tool's execute: serde_json::from_value failed to shape the raw args into the tool's request struct (e.g. `node_id` missing or wrong type — the schema requires node_id, with optional query and limit). This is a generic sentinel: the inner serde message is embedded, so read the `{e}` text for the exact field at fault.

Source

Thrown at src/openhuman/memory/query/drill_down.rs:53

                },
                "query": {
                    "type": "string",
                    "description": "Optional natural-language query — when set, children are reranked by cosine similarity."
                },
                "limit": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Optional cap on returned hits, applied after rerank."
                }
            },
            "required": ["node_id"]
        })
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][memory_tree] drill_down invoked");
        let req: DrillDownRequest = serde_json::from_value(args)
            .map_err(|e| anyhow::anyhow!("invalid arguments for memory_tree_drill_down: {e}"))?;
        if matches!(req.max_depth, Some(0)) {
            return Err(anyhow::anyhow!(
                "memory_tree_drill_down: max_depth must be >= 1"
            ));
        }
        let hits = backend::drill_down(
            &req.node_id,
            req.max_depth.unwrap_or(1),
            req.query.as_deref(),
            req.limit,
        )
        .await?;
        log::debug!(
            "[tool][memory_tree] drill_down returning hits={}",
            hits.len()
        );
        let json = serde_json::to_string(&hits)?;
        Ok(ToolResult::success(json))

View on GitHub (pinned to 7491200858)

Solutions

  1. Supply node_id as a string from a prior cover_window/query_source result
  2. Check query/limit/max_depth types match the schema
  3. Fix malformed JSON in the tool arguments
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/memory/query/drill_down.rs:53 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/3b13617a4e3ead39. Report an issue: GitHub.