tinyhumansai/openhuman · error

memory query: {e}

Error message

memory query: {e}

What it means

Wrapper around active_memory_guard(): acquiring the bound memory driver failed — no driver is bound yet, or the binding errored. Every memory query tool surfaces this as a caller-facing "memory query: {e}" rather than panicking on a missing subsystem.

Source

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

//! `None` is passed for every `scope` argument, and that is not "unrestricted":
//! the guard intersects it with the ambient per-turn allowlist before the call
//! 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?;

View on GitHub (pinned to 7491200858)

Solutions

  1. Retry after boot — the driver binds during memory subsystem startup
  2. Check logs for the underlying binding error (module load failure, missing engine)
  3. Verify the memory module/driver is enabled in this build and config
Defensive patterns

Strategy: retry

When it happens

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