tinyhumansai/openhuman · error

memory_tools_list: {NO_TOOL_MEMORY}

Error message

memory_tools_list: {NO_TOOL_MEMORY}

What it means

The memory guard was acquired but the tool-memory capability family is unavailable (`NO_TOOL_MEMORY`). This sentinel means the bound driver — typically the null/fallback provider when no memory module is loaded — does not implement tool-rule storage, so listing pinned rules for a tool is structurally impossible in this configuration rather than transiently failing.

Source

Thrown at src/openhuman/memory/tools/tool_memory/list.rs:63

            "properties": {
                "tool_name": {
                    "type": "string",
                    "description": "Exact tool name (e.g. `bash`, `web_search`)."
                }
            }
        })
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        let parsed: Args = serde_json::from_value(args)
            .map_err(|e| anyhow::anyhow!("invalid arguments for memory_tools_list: {e}"))?;
        log::debug!("[tool][memory_tools] list tool_name={}", parsed.tool_name);
        let guard = active_memory_guard()
            .await
            .map_err(|e| anyhow::anyhow!("memory_tools_list: {e}"))?;
        let rules = guard
            .as_tool_memory()
            .ok_or_else(|| anyhow::anyhow!("memory_tools_list: {NO_TOOL_MEMORY}"))?
            .tool_rules(&parsed.tool_name)
            .await
            .map_err(|e| anyhow::anyhow!("memory_tools_list: {e}"))?;
        log::debug!(
            "[tool][memory_tools] list via guard tool_name={} rules={}",
            parsed.tool_name,
            rules.len()
        );
        let json = serde_json::to_string(&rules)?;
        Ok(ToolResult::success(json))
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use std::ffi::OsString;

View on GitHub (pinned to 7491200858)

Solutions

  1. Verify the memory module is loaded and provides the tool_memory family
  2. Check memory driver binding status
  3. Treat as a capability gap: skip tool-rule features when running without the memory module
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at src/openhuman/memory/tools/tool_memory/list.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/ef92589916a19470. Report an issue: GitHub.