Repository navigation
Recover provider reads with up to three retries on server errors - #1750
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Provider reads such as
/getEmotescurrently fail immediately on an upstream 5xx response, even if the next request would succeed. Retry these reads before reporting an exhausted failure.The shared
Client.Gethelper now makes up to three retries after the initial attempt (four requests maximum), using the existing 1/2/4-second exponential backoff and provider retry headers. Waiting respects request cancellation and deadlines, and each response body is closed before retrying. Non-5xx failures are returned immediately. RawDoremains single-attempt so existing EventSub retry policies are not multiplied and side-effecting requests are not blindly replayed.Validation:
Retry-After, cancellation/deadlines, response cleanup, and no retries for client or decoding errors.CI=true TWITCH_CLI=/tmp/rtchat-twitch-cli/twitch go test -race ./...,go vet ./..., gofmt checks, and monitoring unit tests pass.Complements #1749: failures that remain after retries retain their diagnostic context.