ReviewOS

pantry-pm/pantry

fix(action): retry release assets while a new tag is publishing

#215
Closed chrisbbreuer opened this 24 days ago · 0 comments
24 days ago

Context

Immediate consumers of v0.10.42 resolved the tag and Action source successfully, but every setup attempt failed with Unexpected HTTP response: 404 because its Releaser was superseded before platform assets were published. This exposed a deterministic tag-to-asset publication race in the Action.

Scope

  • Treat release-asset 404 responses as transient only within a bounded setup retry window.
  • Preserve immediate failure for authorization, malformed responses, and unsupported platforms.
  • Use capped backoff and report the attempted version/platform in the final error.
  • Add deterministic tests without real sleeps or network requests.

Acceptance criteria

  • A newly pushed tag can be consumed while its release workflow is still uploading assets.
  • Retry count and delay are bounded.
  • Permanent failures remain visible and non-zero.
  • Action tests and a real pinned GitHub Actions consumer pass.

Evidence

  • Implementation: 9218391dbabf13ea6185f3f9990a57b508bb12e6
  • Release: v0.10.43 at c5e15260ccde34206082756a14d03e30cf1d7d5e
  • Pantry CI: run 29887331918, including 44 Action tests and the live Redis service contract
  • Pantry Releaser: run 29887332086, 13 minutes from tag visibility to platform assets
  • Live consumer: Stacks Export Size run 29887448529, started while the release did not exist and completed successfully without a rerun
  • Additional consumers: Stacks CI 29887448487, desktop matrix 29887448557, and whitepaper production deploy 29887553459

Originally observed in stacksjs/stacks PR #2064 runs 29887078780 and 29887078703.

Sign in to comment on this issue.