tinyhumansai/openhuman · error
thread_read: thread `{thread_id}` not found
Error message
thread_read: thread `{thread_id}` not found What it means
thread_read scanned the thread list and found no thread whose id equals the given thread_id. This is a not-found result derived from threads_list output, not a storage error — the id is wrong, archived, or from another workspace.
Source
Thrown at src/openhuman/threads/tools.rs:134
fn parameters_schema(&self) -> serde_json::Value {
json!({
"type": "object",
"properties": { "thread_id": { "type": "string", "description": "Thread id." } },
"required": ["thread_id"]
})
}
async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
log::debug!("[tool][threads] read invoked");
let thread_id = read_required_str(&args, "thread_id")?;
let outcome = ops::threads_list(EmptyRequest {})
.await
.map_err(|e| anyhow::anyhow!("thread_read: {e}"))?;
let value = serde_json::to_value(&outcome.value)?;
match find_thread_obj(&value, &thread_id) {
Some(found) => Ok(ToolResult::success(serde_json::to_string(&found)?)),
None => Err(anyhow::anyhow!(
"thread_read: thread `{thread_id}` not found"
)),
}
}
fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {
true
}
}
/// Create a new thread.
pub struct ThreadCreateTool;
#[async_trait]
impl Tool for ThreadCreateTool {
fn name(&self) -> &str {
"thread_create"
}View on GitHub (pinned to 7491200858)
Solutions
- Copy the thread_id exactly from the thread list
- List threads to confirm the id exists in this workspace
- Check for archived or deleted threads
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/threads/tools.rs:134 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/f7f1543f08dc83a4.
Report an issue: GitHub.