Hmbown/CodeWhale · error · anyhow::Error

Agent {agent_id} not found

Error message

Agent {agent_id} not found

What it means

Lookup failure in cancel_agent/resolve paths: no sub-agent matches the given agent_ref (id or alias). Raised by resolve_agent_ref when the agents map contains no entry for the resolved agent_id — the agent completed and was reaped, was never spawned, or belongs to a different session.

Source

Thrown at crates/tui/src/tools/subagent/mod.rs:5279

            if matches!(result.status, SubAgentStatus::Completed)
                && let Some(summary_text) = result.result.as_deref()
                && let Some(workspace) = result.workspace.as_deref()
                && let Some(taint) =
                    claimed_diff_taint(summary_text, workspace, Some(record.created_at_ms))
            {
                record.verification = taint;
            }
        }
        self.record_worker_event(worker_id, status, message, Some(result.steps_taken), None);
    }

    pub fn cancel_agent(&mut self, agent_ref: &str) -> Result<SubAgentResult> {
        let agent_id = self.resolve_agent_ref(agent_ref)?;
        let mut terminal = {
            let agent = self
                .agents
                .get(&agent_id)
                .ok_or_else(|| anyhow!("Agent {agent_id} not found"))?;
            if agent.status != SubAgentStatus::Running || agent.completion_claimed {
                return Ok(agent.snapshot());
            }
            agent.snapshot()
        };
        terminal.status = SubAgentStatus::Cancelled;
        terminal.result = Some("Cancelled by parent request.".to_string());
        terminal.needs_input = None;
        if !self.finish_terminal_result(&agent_id, terminal, true, true) {
            return self.get_result(&agent_id);
        }
        self.get_result(&agent_id)
    }

    pub(crate) fn cancel_agent_for_session(
        &mut self,
        active_session_id: &str,
        agent_ref: &str,

View on GitHub (pinned to 0c42157ee5)

Solutions

  1. List live agents to confirm the id/alias before cancelling
  2. Use the exact agent id returned at spawn time
  3. If the agent already finished, its result may be in the completed records instead
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/tui/src/tools/subagent/mod.rs:5279 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20). Data as JSON: /api/errors/d3df5d51f5845ffe. Report an issue: GitHub.