tinyhumansai/openhuman · error
transcript_search: {e}
Error message
transcript_search: {e} What it means
Generic wrapper from transcript_search: the memory-conversations search failed after the query, limit and exclude-thread resolution. The underlying {e} is the search-layer error — typically the memory/search backend being unavailable or the conversation index failing.
Source
Thrown at src/openhuman/threads/tools.rs:383
let exclude_owned: Option<String> = match args
.get("exclude_thread_id")
.and_then(serde_json::Value::as_str)
{
None => crate::openhuman::agent::tinyagents::thread_context::current_thread_id(),
Some(s) if s.trim().is_empty() => None,
Some(s) => Some(s.trim().to_string()),
};
let exclude = exclude_owned.as_deref();
log::debug!(
"[tool][threads] transcript_search invoked query_chars={} limit={} exclude={:?}",
query.chars().count(),
limit,
exclude
);
let hits = ops::transcript_search(&query, limit, exclude)
.await
.map_err(|e| anyhow::anyhow!("transcript_search: {e}"))?;
if hits.is_empty() {
return Ok(ToolResult::success(format!(
"No past messages matched `{query}`."
)));
}
let mut out = format!(
"{} past message(s) matched `{query}` (newest first):\n",
hits.len()
);
for hit in &hits {
let _ = std::fmt::Write::write_fmt(
&mut out,
format_args!(
"- [thread {} · {} · {}] {}\n",
hit.thread_id,
hit.role,View on GitHub (pinned to 7491200858)
Solutions
- Read {e} for the search backend failure
- Retry — search backends can fail transiently
- Broaden or shorten the query if the failure is resource-related
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src/openhuman/threads/tools.rs:383 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/d367c53342d4574c.
Report an issue: GitHub.