tinyhumansai/openhuman · error
memory_tools_put: {NO_TOOL_MEMORY}
Error message
memory_tools_put: {NO_TOOL_MEMORY} What it means
The memory guard was acquired but the tool-memory capability family is absent (`NO_TOOL_MEMORY` sentinel). The pinned-rule store is only served by drivers implementing that family; with a null/fallback driver bound (no memory module), putting a tool rule is structurally unavailable and this guard reports it.
Source
Thrown at src/openhuman/memory/tools/tool_memory/put.rs:110
}
})
}
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_put: {e}"))?;
log::debug!(
"[tool][memory_tools] put tool_name={} priority={:?} tags={}",
parsed.tool_name,
parsed.priority,
parsed.tags.len()
);
let guard = active_memory_guard()
.await
.map_err(|e| anyhow::anyhow!("memory_tools_put: {e}"))?;
let family = guard
.as_tool_memory()
.ok_or_else(|| anyhow::anyhow!("memory_tools_put: {NO_TOOL_MEMORY}"))?;
let mut rule = ToolMemoryRule::new(
&parsed.tool_name,
&parsed.rule,
parse_priority(parsed.priority.as_deref()),
ToolMemorySource::UserExplicit,
);
rule.tags = parsed.tags;
let rule_id = rule.id.clone();
let tool_name = rule.tool_name.clone();
family
.put_tool_rule(rule)
.await
.map_err(|e| anyhow::anyhow!("memory_tools_put: {e}"))?;
// `put_tool_rule` answers with unit; the tool's contract is the stored
// rule (normalised tool_name, preserved created_at, refreshed
// updated_at), so read it back by the id generated above.
let stored = family
.tool_rules(&tool_name)View on GitHub (pinned to 7491200858)
Solutions
- Confirm the memory module is loaded with tool-memory support
- Check the bound driver via memory status
- Disable tool-rule pinning features in module-less configurations
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at src/openhuman/memory/tools/tool_memory/put.rs:110 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/cab4de7820a961ec.
Report an issue: GitHub.