Skip to content

buzz-acp: no progress-based liveness check — stuck agents run silently until 2-hour max_turn ceiling #6066

Description

@astromara

Describe the bug

buzz-acp allows agent turns to run for up to 2 hours (max_turn=7200s) with no progress-based liveness check. The harness cannot distinguish a stuck agent from one legitimately working, so silent hangs are only detected when the hard ceiling is reached or the user explicitly cancels.

Steps to reproduce

  1. Trigger an agent turn that hangs mid-execution (e.g. a blocking tool call, unresponsive API, or infinite reasoning loop)
  2. Observe that the harness logs extending in-flight deadline by 7200s each time the agent renews
  3. Wait — the turn continues silently until the 2-hour ceiling or manual cancel
  4. On cancel, if the agent does not drain within 5s, the harness logs cancel_drain_timeout and respawns

Expected behavior

A configurable inactivity timeout (e.g. idle_timeout or progress_timeout) should fail the turn if no tool calls, messages, or heartbeats are observed for N minutes, rather than waiting up to 2 hours.

Version and platform

  • Buzz version: 0.5.14
  • OS: macOS 26.5.2 (Apple Silicon)

Logs / additional context

Agent ran from ~16:54 to ~18:08 UTC (1h14m) on a single turn:

INFO  buzz_acp::queue: extending in-flight deadline by 7200s + 100s buffer
...
WARN  buzz_acp::acp: hard turn timeout exceeded (silence 5.001861875s)
WARN  buzz_acp: agent_returned — respawning (cancel-drain timeout) outcome="cancel_drain_timeout"

The agent kept renewing its deadline but never completed. Distinct from #5849 (process leak after cancel), which covers the cleanup side; this issue covers the detection side.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions