Skip to content

Conversation

@bradyyie
Copy link

When a 429 rate limit response occurs, the retryFetch function was attempting to reuse the same Request object for subsequent retry attempts. Request objects in the Fetch API can only be used once - after their body is consumed, they become "used" and cannot be passed to fetch() again.

This caused the error:
"Cannot construct a Request with a Request object that has already been used"

The fix clones the Request object before each fetch attempt, ensuring that retries always work with a fresh, unused Request object.

This bug could manifest in high-traffic scenarios where rate limiting occurs, causing workflow executions to fail unexpectedly.

When a 429 rate limit response occurs, the retryFetch function was
attempting to reuse the same Request object for subsequent retry
attempts. Request objects in the Fetch API can only be used once -
after their body is consumed, they become "used" and cannot be
passed to fetch() again.

This caused the error:
"Cannot construct a Request with a Request object that has already been used"

The fix clones the Request object before each fetch attempt, ensuring
that retries always work with a fresh, unused Request object.

This bug could manifest in high-traffic scenarios where rate limiting
occurs, causing workflow executions to fail unexpectedly.
@codecov
Copy link

codecov bot commented Jan 17, 2026

Codecov Report

❌ Patch coverage is 0% with 6 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...dk/createConductorClient/helpers/fetchWithRetry.ts 0.00% 6 Missing ⚠️
Flag Coverage Δ
integration:orkes-v4 ?
integration:orkes-v5 30.41% <0.00%> (-26.44%) ⬇️
unit 14.97% <0.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...dk/createConductorClient/helpers/fetchWithRetry.ts 21.42% <0.00%> (-65.53%) ⬇️

... and 23 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

1 participant