tinyhumansai/openhuman · error

thread_title_generate: {e}

Error message

thread_title_generate: {e}

What it means

Wrapped error from the thread_title_generate agent tool: parsing the args into GenerateConversationThreadTitleRequest (via parse_req) failed, almost always a missing/invalid `thread_id` or `assistant_message` field. The {e} carries the underlying serde/parse detail; the prefix only identifies which tool rejected the call.

Source

Thrown at src/openhuman/threads/tools.rs:528

            "properties": {
                "thread_id": { "type": "string" },
                "assistant_message": { "type": "string" }
            },
            "required": ["thread_id"]
        })
    }

    fn permission_level(&self) -> PermissionLevel {
        // Runs an inference call.
        PermissionLevel::Execute
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][threads] title_generate invoked");
        let req: GenerateConversationThreadTitleRequest = parse_req(args, "thread_title_generate")?;
        let outcome = ops::thread_generate_title(req)
            .await
            .map_err(|e| anyhow::anyhow!("thread_title_generate: {e}"))?;
        Ok(ToolResult::success(serde_json::to_string(&outcome.value)?))
    }
}

/// Read in-flight turn state for one thread.
pub struct ThreadTurnStateGetTool;

#[async_trait]
impl Tool for ThreadTurnStateGetTool {
    fn name(&self) -> &str {
        "thread_turn_state_get"
    }

    fn description(&self) -> &str {
        "Read the saved in-flight turn state for a thread by `thread_id` (the \
         snapshot of an interrupted/streaming agent turn), or null if none."
    }

View on GitHub (pinned to 7491200858)

Solutions

  1. Check the tool call includes `thread_id` (required) as a string
  2. Ensure `assistant_message`, if provided, is a string
  3. Retry the call with corrected JSON arguments
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/threads/tools.rs:528 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/4c868a1cec929461. Report an issue: GitHub.