- Shipped
- September 5, 2026 at 3:05 PM UTC
- Author
- Kamo
- Commit
- b424dd7
Three attempts of ninety seconds plus backoff is up to 274 seconds of work per translation, and every caller we have gives up long before that — KBService's client reads for 120. The tail of that budget produced translations nobody was waiting for, while holding a worker that the next caller then queued behind. Under load that is self-sustaining: the queue fills with work whose requesters have already timed out, so the requests that are still live wait behind requests that are not. A total budget of 100s now spans every attempt. It sits below the tightest caller's timeout so we always fail before they do, which also means they see our error naming the language pair rather than their own read timeout naming nothing.