tinyhumansai/openhuman · error
memory_hybrid_search: memory driver does not support the ret
Error message
memory_hybrid_search: memory driver does not support the retrieval family
What it means
The guard acquired for hybrid search has as_retrieval() == None — the bound driver lacks the retrieval family, so the multi-signal query cannot be routed. Driver capability mismatch after limit clamping.
Source
Thrown at src/openhuman/memory/tools/search/hybrid_search.rs:139
let limit = parsed.limit.clamp(1, 50);
log::debug!(
"[tool][memory_hybrid_search] query_len={} ns={} mode={} limit={}",
parsed.query.len(),
parsed.namespace,
parsed.mode,
limit,
);
// Reads through the bound driver. This used to call
// `UnifiedMemory::new(&config.workspace_dir, …)` — constructing a
// *whole second engine* over the workspace the loaded module already
// owns, the most severe instance of the split brain this port removes.
let guard = active_memory_guard()
.await
.map_err(|e| anyhow::anyhow!("memory_hybrid_search: {e}"))?;
let retrieval = guard.as_retrieval().ok_or_else(|| {
anyhow::anyhow!(
"memory_hybrid_search: memory driver does not support the retrieval family"
)
})?;
// Self-echo guard (agent-agnostic, mirrors `UnifiedMemory::recall`):
// exclude documents auto-saved for the ambient chat thread (set by
// the web channel around the turn) so a search issued mid-turn
// never retrieves the very request that triggered it. `None`
// outside a chat turn — unchanged behavior for cron/CLI/tests.
let exclude_session_id =
crate::openhuman::agent::tinyagents::thread_context::current_thread_id();
if let Some(ref excluded) = exclude_session_id {
log::debug!(
"[tool][memory_hybrid_search] applying same-session exclusion exclude_session_id={excluded}"
);
}
let hits = retrieval
.recall_namespace_scored(View on GitHub (pinned to 7491200858)
Solutions
- Use a retrieval-capable memory driver
- Diagnose why the bound driver lacks MemoryRetrieval
- Fall back to a simpler search mode the driver supports
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at src/openhuman/memory/tools/search/hybrid_search.rs:139 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/432de95e2129919f.
Report an issue: GitHub.