Skip to content

Fix 409 CONFLICT handler to retry instead of assuming success#2

Merged
mgoldsborough merged 2 commits into
mainfrom
fix/409-announce-retry
Mar 19, 2026
Merged

Fix 409 CONFLICT handler to retry instead of assuming success#2
mgoldsborough merged 2 commits into
mainfrom
fix/409-announce-retry

Conversation

@mgoldsborough
Copy link
Copy Markdown
Contributor

Summary

  • 409 from the announce endpoint now triggers a retry with linear backoff instead of immediately treating as success
  • Fixes a race condition where the version record exists but the artifact was never registered, causing platform builds (especially darwin) to silently appear successful while missing from the registry
  • After exhausting retries on repeated 409s, gracefully falls through as success

Test plan

  • Verify existing CI tests pass (announce is disabled in tests, so no functional change there)
  • Manual verification: confirm retry logs appear on 409 responses
  • Confirm the "not found in release" retry path is unchanged

Closes #1

A 409 from the announce endpoint means the version record exists but
the artifact may not have been registered (registry race condition).
Retry with backoff instead of treating as terminal success. After
exhausting retries, fall through as success since the artifact likely
does exist at that point.

Closes #1
Helps debug cases where the action falls through after exhausting
retry attempts — shows what the registry actually returned.
@mgoldsborough mgoldsborough added the qa-reviewed QA review completed with no critical issues label Mar 19, 2026
@mgoldsborough mgoldsborough merged commit bcc5654 into main Mar 19, 2026
4 checks passed
@mgoldsborough mgoldsborough deleted the fix/409-announce-retry branch March 19, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

qa-reviewed QA review completed with no critical issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

409 from announce treated as success without verifying artifact exists

1 participant