tinyhumansai/openhuman · error

memory query: memory driver does not support the retrieval f

Error message

memory query: memory driver does not support the retrieval family

What it means

The bound memory driver does not implement the retrieval capability family (as_retrieval() is None). A driver-shape mismatch: the active backend (e.g. the null driver) serves no retrieval methods, so the query cannot be routed at all.

Source

Thrown at src/openhuman/memory/query/backend.rs:35

//! reaches the driver, so naming a scope here could only ever narrow what the
//! turn may see.

use anyhow::Result;

use crate::openhuman::memory::api::chunks::SourceKind;
use crate::openhuman::memory::api::provider::{
    MemoryProvider, RetrievalHit, RetrievalResponse, SourceRetrievalQuery,
};
use crate::openhuman::memory::guard::MemoryGuard;
use crate::openhuman::memory::ops::guard::active_memory_guard;

/// The retrieval family on the active driver, or a caller-facing error.
async fn retrieval() -> Result<std::sync::Arc<MemoryGuard>> {
    let guard = active_memory_guard()
        .await
        .map_err(|e| anyhow::anyhow!("memory query: {e}"))?;
    if guard.as_retrieval().is_none() {
        return Err(anyhow::anyhow!(
            "memory query: memory driver does not support the retrieval family"
        ));
    }
    Ok(guard)
}

/// Query the per-source summary trees. The global (time-axis) and topic
/// (subject-axis) trees were removed; source trees plus the entity index are
/// the substrate, so this is the only remaining tree-query backend.
pub async fn query_source_scope(
    scope: Option<&str>,
    time_window_days: Option<u32>,
    query: Option<&str>,
    limit: usize,
) -> Result<RetrievalResponse> {
    let guard = retrieval().await?;
    let request = SourceRetrievalQuery {
        source_id: scope.map(str::to_string),

View on GitHub (pinned to 7491200858)

Solutions

  1. Switch to a memory driver that implements MemoryRetrieval (the tinymemory module)
  2. Check whether the null driver is bound because module loading failed
  3. Report the driver/backend combination as lacking retrieval support
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at src/openhuman/memory/query/backend.rs:35 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/605bd8aabccc6fcc. Report an issue: GitHub.