tinyhumansai/openhuman · error
join: {e}
Error message
join: {e} What it means
The spawn_blocking task that opens the diff Ledger over workspace_dir and iterates sources returned an Err (ledger open failure or per-source read failure). The join result is unwrapped and prefixed with join:.
Source
Thrown at src/openhuman/memory/tools/diff.rs:150
let workspace_dir = config.workspace_dir.clone();
let source_ids: Vec<(String, String, String)> = sources
.iter()
.filter(|s| s.enabled)
.map(|s| (s.id.clone(), s.label.clone(), s.kind.as_str().to_string()))
.collect();
let counts: Vec<(String, String, String, usize)> =
tokio::task::spawn_blocking(move || -> anyhow::Result<_> {
let ledger = tinycortex::memory::diff::Ledger::open(&workspace_dir)?;
let mut out = Vec::new();
for (sid, label, kind) in &source_ids {
let count = ledger.snapshot_count_for_source(sid)?;
out.push((sid.clone(), label.clone(), kind.clone(), count));
}
Ok(out)
})
.await
.map_err(|e| anyhow::anyhow!("join: {e}"))?
.map_err(|e: anyhow::Error| anyhow::anyhow!("{e:#}"))?;
let mut md = String::from("## Memory Sources (snapshot status)\n\n");
if counts.is_empty() {
md.push_str("No enabled memory sources configured.\n");
} else {
for (sid, label, kind, count) in &counts {
md.push_str(&format!(
"- **{label}** ({kind}) — {count} snapshot(s) | source_id: `{sid}`\n"
));
}
md.push_str(
"\nCall with `source_id` to see what changed since the last sync, \
or `checkpoint_id` for cross-source diffs.\n",
);
}
Ok(ToolResult::success(md))View on GitHub (pinned to 7491200858)
Solutions
- Check the workspace memory diff ledger files are readable and not locked
- Retry — the blocking task can fail under concurrent writes
- Inspect the chained error for the offending source
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/memory/tools/diff.rs:150 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/eb6c7d01fca1c357.
Report an issue: GitHub.