Agent Teams: zombie teammates cannot be force-terminated by team lead

Resolved 💬 2 comments Opened Apr 13, 2026 by clafollett Closed May 28, 2026

Description

When using Agent Teams (experimental, CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1), teammate agents can enter a "zombie" state where they:

  • Remain in the team config (~/.claude/teams/{team}/config.json)
  • Show as "Idle" in the agent panel
  • Accept keep-alive pings without error
  • But do NOT process any tool calls or respond to SendMessage content

The team lead has no way to force-terminate a zombie teammate. SendMessage with shutdown_request type is delivered successfully (no error) but the agent never processes it.

Impact

  • The zombie agent occupies a team slot but produces no work
  • The team lead cannot recover without human intervention (Escape + manual kill in agent panel, or full session restart)
  • In an autonomous/overnight scenario, this means an agent is permanently stuck until a human notices

Steps to Reproduce

  1. Create an Agent Team with TeamCreate
  2. Spawn teammates with Agent tool (in-process backend)
  3. Assign work to a teammate via SendMessage
  4. After the teammate completes work and goes idle, continue sending messages
  5. At some point (observed after ~30-45 min of mixed activity/idle), the teammate stops processing messages entirely
  6. SendMessage returns success but the teammate never responds
  7. shutdown_request also returns success but the teammate never terminates

Expected Behavior

  • Team lead should have a ForceTerminate tool or similar mechanism to kill unresponsive teammates
  • Or: zombie detection with automatic recovery (respawn after N seconds of unresponsiveness)
  • Or: SendMessage should return an error/warning if the target agent is in a zombie state

Environment

  • Claude Code: latest (April 2026)
  • macOS 26.4 (Darwin 25.4.0)
  • Backend type: in-process
  • CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
  • Model: claude-opus-4-6

Workaround

Human manually kills the zombie via Escape + agent panel (Shift+Down to find it). No programmatic workaround available to the team lead.

Suggestion

A ForceTerminate or TeamKick tool that allows the team lead to remove an unresponsive teammate from the team, cleaning up their process. This would enable fully autonomous agent teams without requiring human babysitting for zombie recovery.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗