hashicorp / hashicorp/go-retryablehttp

A way to skip retrying non-idempotent requests

Open
#169 0 comments 11 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
2.3k
Forks
298
PR merge metrics
No merged PRs in 30d

Description

When non-idempotent requests, e.g. POST, are retried, it can easily lead to data corruption and duplication.
One natural way to skip retrying those is with `CheckRetry` function. But in that function, one only has the response, and not the request, to make the decision based on. Since the response in `nil` when there are connection errors, one cannot check `response.Request.Method` in that case.

It would be pretty awesome to have request passed to `CheckRetry` alongside the response, but any other solution that would allow to skip retrying based on method would be great too.

Right now I'm having to use two separate http clients, one with retries and one without, depending on the method.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.