tinyhumansai/openhuman · error

invalid arguments for memory_tree_cover_window: {e}

Error message

invalid arguments for memory_tree_cover_window: {e}

What it means

serde_json::from_value failed while deserializing the memory_tree_cover_window args into the typed request (bad since_ms/until_ms types, unknown fields, or a malformed object). Fires before any config or disk access, per the validate-early policy.

Source

Thrown at src/openhuman/memory/query/cover_window.rs:63

                "source_kind": {
                    "type": "string",
                    "enum": ["chat", "email", "document"],
                    "description": "Source kind filter when no exact id is known."
                },
                "limit": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Max hits to return (default 200)."
                }
            },
            "required": ["since_ms", "until_ms"]
        })
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][memory_tree] cover_window invoked");
        let req: CoverWindowRequest = serde_json::from_value(args)
            .map_err(|e| anyhow::anyhow!("invalid arguments for memory_tree_cover_window: {e}"))?;
        // Correlation fields only — source_id can carry PII, so log its presence,
        // not its value.
        log::debug!(
            "[tool][memory_tree] cover_window parsed since_ms={} until_ms={} has_source_id={} has_source_kind={} has_limit={}",
            req.since_ms,
            req.until_ms,
            req.source_id.is_some(),
            req.source_kind.is_some(),
            req.limit.is_some()
        );
        // Validate arguments before touching config/disk — `SourceKind::parse`
        // is pure, so a bad `source_kind` must fail with the parse error
        // regardless of workspace state.
        let source_kind = match req.source_kind.as_deref() {
            Some(s) => {
                log::trace!("[tool][memory_tree] cover_window parse_source_kind");
                Some(
                    SourceKind::parse(s)

View on GitHub (pinned to 7491200858)

Solutions

  1. Check since_ms and until_ms are integers (milliseconds since epoch)
  2. Ensure node_id/source_kind strings match the schema enum where applicable
  3. Remove unknown or misspelled fields from the arguments
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/memory/query/cover_window.rs:63 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/675269c3ed3f09b2. Report an issue: GitHub.