Skip to content

Conversation

@JoeColeman95
Copy link
Contributor

Changes

  • Automatic retry logic added API calls with exponential backoff and jitter
  • Retries transient failures such as 5xx server errors, 429 rate limits, and network errors
  • Fast-fails on non-retryable errors (4xx errors (except 429))
  • Backoff capped at 60 seconds per retry
  • Applies to both build creation and status polling
  • Build creation POST will automatically retry
  • Build status polling GET requests will retry when wait: true
  • Default retries for POST (5 retries, base delay of 2s which increases per try)
  • Added 6 new test cases for retry scenarios (tests 26-32)
  • Updated all existing tests to work with new retry wrapper
  • All 32 tests passing
  • Set delay to 0s on retries so it's not painful to wait
  • Manually tested in GHA workflow
  • Updated README.md with retry behavior
  • Added .gitignore for test-generated files
  • Bumped to v2.4.1 (release will be cut upon merge)

Adding curl_with_retry function to allow for retries on the API endpoint without failing immediately (unless there's a valid reason to such as a 4xx code except 429)

Adding helper function calculate_backoff_delay to handle exponential backoff, including jitter and a maximum delay cap
@JoeColeman95 JoeColeman95 requested a review from a team as a code owner November 5, 2025 18:14
Copy link
Contributor

@lizrabuya lizrabuya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! 🚀

@lizrabuya lizrabuya merged commit 909fed7 into master Nov 6, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants