tinyhumansai/openhuman · error
memory_tree walk: {e}
Error message
memory_tree walk: {e} What it means
Wrapper around active_memory_guard() in the walk path: the bound driver could not be acquired. The scope is deliberately None (the guard intersects it with the per-turn allowlist), so this error is purely about driver availability.
Source
Thrown at src/openhuman/memory/query/fast_walk.rs:52
.get("max_hops")
.and_then(|v| v.as_u64())
.map(|n| n as u32)
.unwrap_or(2);
log::debug!(
"[tool][memory_tree] walk (deterministic) query_len={} limit={} max_hops={} window={:?}",
query.len(),
limit,
max_hops,
time_window_days
);
// Routed through the bound driver. `None` for the scope is not
// "unrestricted": the guard intersects it with the ambient per-turn
// allowlist, so the source gate still applies.
let guard = active_memory_guard()
.await
.map_err(|e| anyhow::anyhow!("memory_tree walk: {e}"))?;
let opts = FastRetrieveQuery {
limit,
max_hops,
time_window_days,
};
let resp = guard
.as_retrieval()
.ok_or_else(|| {
anyhow::anyhow!("memory_tree walk: memory driver does not support the retrieval family")
})?
.fast_retrieve(&query, opts, None)
.await?;
log::debug!(
"[tool][memory_tree] walk returning hits={} total={}",
resp.hits.len(),
resp.total
);
let json = serde_json::to_string(&resp)?;View on GitHub (pinned to 7491200858)
Solutions
- Retry after the memory driver binds at startup
- Check the core log for the underlying binding error
- Verify a retrieval-capable memory backend is configured
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/memory/query/fast_walk.rs:52 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/905141aae3fd97b4.
Report an issue: GitHub.