Put a limit on retries that never stop
Retries with no limit, replaced by a fixed number of attempts that wait longer each time, so one outage cannot overwhelm everything.
The ticket
Replace unbounded retries with a bounded, backed-off retry policy.
Acceptance criteria
- Retries are bounded by a stated maximum
- Backoff is exponential with jitter
- The path after exhaustion is defined and tested
- The policy is configuration rather than a literal in the handler
What lands as proof
A test that exhausts the budget and asserts the defined terminal behaviour rather than an infinite loop.
Why teams defer it
- Infinite retry looks like resilience right up to the moment it becomes a self-inflicted denial of service.
- Choosing the ceiling needs data about how long the dependency usually takes to recover.
Questions
- What does the agent actually change?
- The ticket is scoped to one outcome: replace unbounded retries with a bounded, backed-off retry policy. Work that serves that outcome is in scope, and anything outside it is left for a separate ticket, so the pull request stays reviewable.
- How do I know the work is done?
- The pull request carries the evidence, not only the diff. Here that means failure path tested, the ceiling documented in the description, so a reviewer can confirm the result without reproducing the work locally.
- How much oversight does this need?
- The run stops once the plan is written. Somebody reads the approach and approves it before any code exists, which is the cheapest moment to redirect the work.