smartystreets / smartystreets-ruby-sdk

The official client libraries for accessing SmartyStreets APIs from Ruby
https://smartystreets.com/docs/sdk/ruby
Apache License 2.0
23 stars 25 forks source link

Don't retry on client errors. #7

Closed dreid closed 7 years ago

dreid commented 7 years ago

Many error classes aren't likely to succeed when you try again and so they probably shouldn't be retried by default.

Errors I don't think will typically work if retried:

Errors which may work if retried:

This is based on the errors handled by StatusCodeSender, as you can see it groups neatly into 400 errors (client errors) and 500 errors (server errors).

This PR only retries anything less than 500.

Depending on your API compatibility stance this could be a big backwards compatibility change but it's in line with typical usage of HTTP.

MouaYing commented 7 years ago

Thanks for helping us make this better, @dreid !