ThrottlingException should be retried by default?
xiongtx opened this issue · comments
aws-api
has automatic retries, but doesn't treat ThrottlingException
as a retriable error by default.
clojure.lang.ExceptionInfo: SSM receive account credentials error
__type: "ThrottlingException"
cognitect.anomalies/category: :cognitect.anomalies/incorrect
commandId: "ce0bf8a7-896e-4f9d-a8ba-1af13b0134d6"
message: "Rate exceeded"
The default retriable anomalies are busy
, interrupted
, and unavailable
, but ThrottlingException
results in an incorrect
. Would it make sense for it to be busy
instead?
Do you know what the http status code was?
Edit: https://docs.aws.amazon.com/awssupport/latest/APIReference/CommonErrors.html says it would have been a 400.
Looking at AWS docs
If you're not using an AWS SDK, you should retry original requests that receive server (5xx) or throttling errors. However, client errors (4xx) indicate that you need to revise the request to correct the problem before trying again.
This is a bit contradictory in this case since they send us a 400 with an indication embedded in a JSON response that it's a ThrottlingError. That said, based on "or throttling errors," I'm inclined to agree that their advice is to retry this.
Fixed in 05117f0
Leaving this open until it's released.
Released in version 0.8.656