Announcement: Updated default retry behavior (2026) #2166
Pinned
millems
announced in
Announcements
Replies: 1 comment
-
|
Use with opt-in flag |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Status
AWS_NEW_RETRIES_2026=trueWhat changed
When you set
AWS_NEW_RETRIES_2026=true, the default values forstandardmode are updated per the table below. The retry mode itself does not change.If you have explicitly configured max attempts or backoff, your value takes precedence for that setting.
Transient errors (such as 500s and connection resets) now use a much shorter backoff than throttling errors (where the service asks you to slow down). For details on backoff timing, error classification, and the retry quota, see Retry behavior in the AWS SDKs. For retry mode selection and configuration options, see Retry behavior in the AWS SDKs.
How to opt in
Once the release ships (we will update this issue), set the environment variable:
export AWS_NEW_RETRIES_2026=trueHow to revert
During the opt-in period, remove the environment variable:
unset AWS_NEW_RETRIES_2026After the default rollout (no sooner than November 2026), the
AWS_NEW_RETRIES_2026flag will be removed. The updated behavior cannot be reverted because this SDK does not supportlegacyretry mode. You can still overridemax_attempts.If this is a concern for your use case, please let us know in this issue.
Where you might notice a difference
For most workloads, the change is invisible or strictly better. Transient errors recover faster because the base delay is significantly shorter.
SQS.ReceiveMessageapply a backoff delay before returning an error, even when retries are blocked. Without this, polling loops tighten during outages, spiking client CPU usage and generating additional load that can delay recovery. For details, see long-polling operations.Overriding specific settings
You do not have to accept all changes as a bundle. If you opt in but want to keep a specific previous value, set it explicitly. Precedence applies per setting.
For example, to use the new backoff timing but keep a higher DynamoDB max attempts:
For the full list of configurable settings and their precedence, see Retry behavior in the AWS SDKs.
Feedback
If you encounter unexpected behavior or have questions, comment on this issue. Your feedback during the opt-in period directly shapes when and how we make this the default.
Beta Was this translation helpful? Give feedback.
All reactions