Skip to content

feat: retry rate limited requests and pace against advisory rate limit headers - #495

Closed
borland wants to merge 1 commit into
mainfrom
orion/rate-limiting-advisory-headers
Closed

borland wants to merge 1 commit into
mainfrom
orion/rate-limiting-advisory-headers

Conversation

@borland

@borland borland commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator

🤖 Claude:

Requests the Octopus Server rejects with HTTP 429 are now retried after the Retry-After delay, backing off exponentially with jitter (5 retries, 2s default, 30s cap), matching the web portal. Requests whose body can't be replayed are sent once.

Opt-in pacing (ratelimit.Options.UseRateLimitHeaders) keeps the client inside the limit advertised by the Octopus-RateLimit-Policy and Octopus-RateLimit headers, using the same GCRA pacer as the C# client.

Adds client.NewClientWithOptions to configure this. HttpSession JSON requests now set GetBody and ContentLength so they can be retried.

…t headers

Requests the Octopus Server rejects with HTTP 429 are now retried after the
Retry-After delay, backing off exponentially with jitter (5 retries, 2s
default, 30s cap), matching the web portal. Requests whose body can't be
replayed are sent once.

Opt-in pacing (ratelimit.Options.UseRateLimitHeaders) keeps the client
inside the limit advertised by the Octopus-RateLimit-Policy and
Octopus-RateLimit headers, using the same GCRA pacer as the C# client.

Adds client.NewClientWithOptions to configure this. HttpSession JSON
requests now set GetBody and ContentLength so they can be retried.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@borland

borland commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator Author

Closing, this was implemented by @YuKitsune in feat: Obey Octopus Server rate limits in a slightly different manner, but achieves the same outcome

@borland borland closed this Oct 19, 2026
@borland
borland deleted the orion/rate-limiting-advisory-headers branch October 19, 2026 19:31
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