Skip to content

Back off Cloudability 429 rate limits during discovery#2336

Merged
alexandrudanpop merged 1 commit into
mainfrom
ops-4432-cloudability-429-backoff
Jun 10, 2026
Merged

Back off Cloudability 429 rate limits during discovery#2336
alexandrudanpop merged 1 commit into
mainfrom
ops-4432-cloudability-429-backoff

Conversation

@alexandrudanpop

@alexandrudanpop alexandrudanpop commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Fixes OPS-4432

@linear

linear Bot commented Jun 10, 2026

Copy link
Copy Markdown

OPS-4432

@sonarqubecloud

sonarqubecloud Bot commented Jun 10, 2026

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

@alexandrudanpop alexandrudanpop marked this pull request as ready for review June 10, 2026 11:56
Copilot AI review requested due to automatic review settings June 10, 2026 11:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR addresses OPS-4432 by improving how the engine backs off when Cloudability discovery hits HTTP 429 rate limits, using server-provided Retry-After when available and adding jitter to avoid synchronized retries.

Changes:

  • Extend shared retry metadata to represent generic HTTP 429s and non-retryable HTTP client errors.
  • Add Cloudability-specific retry classification in the engine (429 uses capped base+jitter delay; permanent 4xx are not retried).
  • Implement RFC 7231 Retry-After parsing in blocks-common and have HttpError prefer it over Azure’s custom retry header.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/shared/src/lib/flow-run/execution/step-output.ts Expands retry metadata types to include HTTP 429 and permanent client error classifications.
packages/engine/src/lib/helper/error-handling.ts Adds Cloudability 429 backoff with additive jitter and prevents retries for permanent 4xx client errors.
packages/engine/test/helper/error-handling.test.ts Adds deterministic tests for Cloudability 429 delay/jitter behavior and permanent client error non-retry behavior.
packages/blocks/common/src/lib/http/index.ts Re-exports the new standard Retry-After parser from the HTTP module barrel.
packages/blocks/common/src/lib/http/core/standard-retry-after.ts Adds RFC 7231-compliant Retry-After parsing (delta-seconds and HTTP-date) with a 10-minute cap.
packages/blocks/common/src/lib/http/core/http-error.ts Makes HttpError.retryAfterMs prefer standard Retry-After and fall back to Azure-specific header parsing.
packages/blocks/azure/test/standard-retry-after.test.ts Adds unit coverage for Retry-After parsing behavior.
packages/blocks/azure/test/http-error-retry-after.test.ts Adds unit coverage for HttpError.retryAfterMs precedence and 429-only behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@alexandrudanpop alexandrudanpop enabled auto-merge (squash) June 10, 2026 12:36
@alexandrudanpop alexandrudanpop merged commit 3b980fd into main Jun 10, 2026
23 checks passed
@alexandrudanpop alexandrudanpop deleted the ops-4432-cloudability-429-backoff branch June 10, 2026 13:25
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.

3 participants