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

  1. Verify the memory module is loaded and pinned in modules::registry
  2. Check which memory driver is bound (module vs null fallback) via memory health/status
  3. Use a retrieval path the driver does support, such as memory_recall or hybrid search
  4. 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.