Agent cannot converge on a 'simple' fix: each fix surfaces another masked failure, many attempts, no clean close

Open 💬 1 comment Opened Jun 23, 2026 by Mig-Sornrakrit

Asked to fix what looked like a simple defect, the agent spent an extremely long, multi-day, many-attempt effort and still could not fully close it. The core failure mode:

  1. Whack-a-mole on hidden failures. Fixing the real defect exposed a chain of pre-existing masked problems — a circular/self-referential test reference, a wrong code path, a data-type mismatch in an external API call, then a value-ordering mismatch — each only revealing the next after a fix was applied and re-verified. The user experiences this as 'every time you say it's fixed, you hand me a new hidden failure.'
  1. No upfront map of the blast radius. The agent did not enumerate the layered dependencies before starting, so it discovered them serially across many cycles instead of surfacing them once.
  1. A self-inflicted regression mid-fix. At one point the agent put an edit in the wrong function (a different module's code path) and had to catch and revert it — exactly the 'new problem from the fix' the user is exhausted by.
  1. Effort wildly disproportionate to the stated task size. A 'simple' function consumed days and dozens of tool cycles, with the user paying for each, and the final state still has a residual the agent could not close.
  1. Repeated reassurance that didn't hold. Multiple 'done / it works now' moments were followed by the verifier surfacing more failures.

Requests:

  • When a fix touches shared/layered code, the agent should map and report the full dependency/blast-radius BEFORE editing, so masked failures surface at once, not one-per-cycle.
  • The agent should never silently keep grinding; after N failed convergence cycles it should stop, report the honest residual, and ask, rather than continuing to bill the user.
  • Effort should be bounded relative to the stated task size; a 'simple' fix ballooning into days is itself a signal to stop and escalate.
  • 'Fixed' should never be claimed before the authoritative check passes end-to-end.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗