fix(launcher): retry GitHub releases download up to 3× on transient failure (#1139)
On CI environments without a `GITHUB_TOKEN`, downloading a pinned version directly from `github.com/releases/download/…` can fail mid-stream with a connection reset (os error 104). The launcher had no retry logic, so a single transient failure immediately exhausted the (often single) source list and terminated the job. Add up to 3 download attempts with exponential backoff (0 s, 1 s, 2 s) for the GitHub direct-download path. The request is rebuilt on each attempt (reqwest `Request` is consumed by the first execute call). A successful attempt short-circuits the loop; a permanent failure after all attempts propagates as before. --- ### Changes are visible to end-users: yes - Searched for relevant documentation and updated as needed: no - Breaking change (forces users to change their own code or config): no - Suggested release notes appear below: yes **Suggested release notes:** - `fix(launcher)`: GitHub release downloads now retry up to 3 times on transient network failures (connection reset, mid-stream disconnects). Fixes jobs failing on first run when the pinned-version binary is not yet cached. ### Test plan - Covered by existing test cases (all 54 launcher tests pass) - Manual testing: reproduced the transient failure scenario via CircleCI logs showing `Connection reset by peer (os error 104)` mid-download; retry logic would have recovered Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
G
Greg Magolan committed
5249202cfbf53ca54dcbc823eba89ed715108b98
Parent: ef4f693
Committed by GitHub <noreply@github.com>
on 5/29/2026, 9:20:11 PM