tinyhumansai/openhuman · error · anyhow::Error

memory_store_raw_search: memory driver does not support the

Error message

memory_store_raw_search: memory driver does not support the retrieval family

What it means

Capability guard in the memory_store_raw_search tool's execute: after guard acquisition, guard.as_retrieval() returned None, meaning the active memory driver does not implement the retrieval family, so an entity/raw search cannot be served. This is a driver-capability boundary, not bad input — use a driver that supports retrieval or a different memory tool.

Source

Thrown at src/openhuman/memory/tools/raw_store/raw_search.rs:95

            parsed.limit
        );
        // An empty `kinds` list means "no filter", matching the previous
        // behaviour — it is not forwarded as an empty allowlist, which the
        // driver would read as "match no kind at all".
        let kinds = parsed
            .kinds
            .as_ref()
            .filter(|kinds| !kinds.is_empty())
            .map(Vec::as_slice);
        // Kind validation belongs to the driver now: the vocabulary is open on
        // the wire. See the note in `memory/query/search_entities.rs`.
        let guard = active_memory_guard()
            .await
            .map_err(|e| anyhow::anyhow!("memory_store_raw_search: {e}"))?;
        let hits = guard
            .as_retrieval()
            .ok_or_else(|| {
                anyhow::anyhow!(
                    "memory_store_raw_search: memory driver does not support the retrieval family"
                )
            })?
            .search_entities(&parsed.query, kinds, parsed.limit)
            .await
            .map_err(|e| anyhow::anyhow!("memory_store_raw_search: {e}"))?;
        log::debug!(
            "[tool][memory_store] raw_search returning hits={}",
            hits.len()
        );
        let json = serde_json::to_string(&hits)?;
        Ok(ToolResult::success(json))
    }
}

#[cfg(test)]
mod tests {
    use super::*;

View on GitHub (pinned to 7491200858)

Solutions

  1. Use a retrieval-capable driver
  2. Investigate why the bound driver lacks retrieval
  3. Choose a mode the active driver supports
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at src/openhuman/memory/tools/raw_store/raw_search.rs:95 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/027141395414c9c2. Report an issue: GitHub.