tinyhumansai/openhuman · error

read_chunk_row: {e}

Error message

read_chunk_row: {e}

What it means

Error mapping around read_chunk_row, a helper that renders one chunk for inspection by a single MemoryChunks::chunk_detail bus call (row, vault body, content path, lifecycle state, embedding presence). The error fires when that driver call fails — unknown chunk_id, driver unavailable, or transport error — and is prefixed for grep-ability since it is used to render lists of rows.

Source

Thrown at src/openhuman/memory/read_rpc/chunks.rs:417

        format!("memory_tree::read: recall n={n}"),
    ))
}

// ── small helpers ───────────────────────────────────────────────────────

/// One chunk rendered for inspection.
///
/// Reads through the bound driver's [`MemoryChunks::chunk_detail`], which
/// returns the row, its vault body, content path, lifecycle state and embedding
/// presence in **one** call. It used to make four separate engine calls in
/// process; four bus round trips per rendered row would have been the direct
/// translation, and this is used to render lists.
pub async fn read_chunk_row(chunk_id: &str) -> Result<Option<ChunkRow>> {
    use crate::openhuman::memory::api::provider::MemoryProvider;

    let guard = crate::openhuman::memory::ops::guard::active_memory_guard()
        .await
        .map_err(|e| anyhow::anyhow!("read_chunk_row: {e}"))?;
    let Some(detail) = guard
        .as_chunks()
        .ok_or_else(|| anyhow::anyhow!("read_chunk_row: driver has no chunk family"))?
        .chunk_detail(chunk_id)
        .await?
    else {
        return Ok(None);
    };

    let chunk = detail.chunk;
    // A failed vault read falls back to the row's own content, as before —
    // `body: None` means "could not read", not "empty".
    let body = detail.body.unwrap_or_else(|| chunk.content.clone());
    let preview: String = body.chars().take(PREVIEW_MAX_CHARS).collect();
    Ok(Some(ChunkRow {
        id: chunk.id,
        source_kind: chunk.metadata.source_kind.as_str().to_string(),
        source_id: chunk.metadata.source_id,

View on GitHub (pinned to 7491200858)

Solutions

  1. Retry — chunk reads can race module restarts
  2. Check the chained error for the underlying driver fault
  3. Verify the chunk id still exists (it may have been dropped)
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/openhuman/memory/read_rpc/chunks.rs:417 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/9f85e11475a6f395. Report an issue: GitHub.