tinyhumansai/openhuman · error · anyhow::Error
run_subagent(`{agent_id}`) failed: {e}
Error message
run_subagent(`{agent_id}`) failed: {e} What it means
The triage escalation path wrapped a failed run_subagent turn: the sub-agent's harness run itself errored (model/provider failure, turn timeout, or harness error) after the definition lookup and parent context build succeeded. The prefix names the dispatch site; the underlying error is the harness's.
Source
Thrown at src/openhuman/agent/triage/escalation.rs:299
// is initialised, so this lookup for the target definition is safe here.
let registry = AgentDefinitionRegistry::global()
.ok_or_else(|| anyhow!("AgentDefinitionRegistry not initialised"))?;
let definition = registry
.get(agent_id)
.ok_or_else(|| anyhow!("agent definition `{agent_id}` not found in registry"))?;
tracing::debug!(
agent_id = %agent_id,
model = %parent_ctx.model_name,
tool_count = parent_ctx.all_tools.len(),
"[triage::escalation] dispatching run_subagent with parent context"
);
let outcome = with_parent_context(parent_ctx, async {
subagent_runner::run_subagent(definition, prompt, SubagentRunOptions::default()).await
})
.await
.map_err(|e| anyhow!("run_subagent(`{agent_id}`) failed: {e}"))?;
tracing::debug!(
agent_id = %agent_id,
elapsed_ms = outcome.elapsed.as_millis() as u64,
iterations = outcome.iterations,
output_chars = outcome.output.chars().count(),
"[triage::escalation] run_subagent completed"
);
Ok(outcome.output)
}
/// Load the linked card from its board and hand it to the deterministic task
/// dispatcher (claim → autonomous run → write-back). Errors (card not found,
/// or claim rejected because another card is already in progress) propagate to
/// the caller, which treats them as benign skips.
async fn dispatch_linked_card(
link: &TaskCardLink,View on GitHub (pinned to 7491200858)
Solutions
- Inspect the wrapped error for the harness/model cause
- Verify the provider configured for the sub-agent is reachable
- Retry the turn; transient provider failures commonly resolve
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src/openhuman/agent/triage/escalation.rs:299 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/45bfe98304d4e6d5.
Report an issue: GitHub.