Skip to content

chore: add opt-in retry for rate-limited and transport-failed requests#62

Merged
mogita merged 1 commit into
masterfrom
feat/cha-2959-retry
Jul 24, 2026
Merged

chore: add opt-in retry for rate-limited and transport-failed requests#62
mogita merged 1 commit into
masterfrom
feat/cha-2959-retry

Conversation

@mogita

@mogita mogita commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Ticket

https://linear.app/stream/issue/CHA-2959/rate-limits-and-retry

Summary

Adds an opt-in auto-retry policy. RetryConfig is disabled by default (maxAttempts=3, maxBackoff=30s). When enabled, retries ONLY GET/HEAD requests that fail with HTTP 429 or a transport error, honoring Retry-After (clamped to maxBackoff) otherwise exponential backoff with full jitter. Never retries writes or 5xx; always honors the backend unrecoverable flag; surfaces the last attempt's error. Config surface: StreamOptions.Retry = new RetryConfig{...}

Notes

  • Retry attempts are observable via the existing http.request.failed log event with a retry.attempt field (transport retries carry error.type; 429 retries omit it, since that field is the transport-only enum).
  • Titled chore: intentionally so the merge does not auto-publish. Publish later via the manual Release workflow (workflow_dispatch, minor).

@mogita
mogita merged commit 6c32785 into master Jul 24, 2026
4 checks passed
@mogita
mogita deleted the feat/cha-2959-retry branch July 24, 2026 13:30
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