Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default retry policy always retries client exceptions #555

Closed
aajtodd opened this issue Dec 17, 2021 · 1 comment · Fixed by #560
Closed

Default retry policy always retries client exceptions #555

aajtodd opened this issue Dec 17, 2021 · 1 comment · Fixed by #560
Labels
bug This issue is a bug. runtime Runtime related change

Comments

@aajtodd
Copy link
Contributor

aajtodd commented Dec 17, 2021

Describe the bug

The StandardRetryPolicy always evaluates ClientException (and sub classes) as retryable

Expected Behavior

Client exceptions are in general probably not retryable since they all stem from the runtime. The errors usually represent some form of configuration error, serde issue, etc. The policy should be updated to at the very least check the isRetryable metadata (which is present on SdkBaseException) and defaults to false. This would allow for client exceptions to be retried if they explicitly opt-in.

@aajtodd aajtodd added bug This issue is a bug. runtime Runtime related change labels Dec 17, 2021
@aajtodd
Copy link
Contributor Author

aajtodd commented Dec 17, 2021

This is currently affecting credential providers that have their own retry policy or operations that use credential providers that throw (e.g.) CredentialsProviderException. I hit this working on the ECS provider which has it's own retry policy. The operation that uses the provider will attempt to retry the CredentialsProviderException when it should not (the provider has already determined the error isn't retryable so further attempts all yield the same failure).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug This issue is a bug. runtime Runtime related change
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant