tinyhumansai/openhuman · error
memory_vector_search: memory driver does not support the chu
Error message
memory_vector_search: memory driver does not support the chunk family
What it means
The bound memory driver was acquired but does not expose the chunks capability family (`as_chunks()` returned None). Vector search reads raw chunks through the driver; a driver that only implements other capability families (e.g. a null or partial fallback provider when no memory module is loaded) makes chunk-based vector search structurally unavailable, and this guard fires before any query is issued.
Source
Thrown at src/openhuman/memory/tools/search/vector_search.rs:135
limit,
parsed.diverse,
);
let config = config_rpc::load_config_with_timeout()
.await
.map_err(|e| anyhow::anyhow!("memory_vector_search: load config failed: {e}"))?;
// Chunks are read through the bound driver, not by opening the store
// in this process. Before the module port this called
// `list_chunks(&config, …)` directly, which resolved the workspace path
// and opened the same SQLite database the loaded module already had
// open — two engine instances over one file, with the module not
// authoritative. See `docs/specs/2026-08-13-memory-module-port.md` §2.1.
let guard = active_memory_guard()
.await
.map_err(|e| anyhow::anyhow!("memory_vector_search: {e}"))?;
let chunk_reader = guard.as_chunks().ok_or_else(|| {
anyhow::anyhow!("memory_vector_search: memory driver does not support the chunk family")
})?;
let embedder = provider_from_config(&config)
.map_err(|e| anyhow::anyhow!("memory_vector_search: embedding provider failed: {e}"))?;
let query_vec = embedder
.embed_one(&parsed.query)
.await
.map_err(|e| anyhow::anyhow!("memory_vector_search: embedding query failed: {e}"))?;
let source_kind = match parsed.source_kind.as_deref() {
Some(s) => Some(
SourceKind::parse(s).map_err(|e| anyhow::anyhow!("memory_vector_search: {e}"))?,
),
None => None,
};
let since_ms = parsed.time_window_days.map(|days| {View on GitHub (pinned to 7491200858)
Solutions
- Verify the memory module is loaded and pinned in modules::registry
- Check which memory driver is bound (module vs null fallback) via memory health/status
- Use a retrieval path the driver does support, such as memory_recall or hybrid search
- Rebuild/re-pin the memory module release if the capability family is missing
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at src/openhuman/memory/tools/search/vector_search.rs:135 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/e125c253bec07ec2.
Report an issue: GitHub.