diff --git a/client/client.go b/client/client.go index 664943f4..106b387f 100644 --- a/client/client.go +++ b/client/client.go @@ -100,7 +100,7 @@ var ( // DefaultBackoff is the default backoff function for retries DefaultBackoff = exponentialBackoff // DefaultRetry is the default check-for-retry function for retries - DefaultRetry = RetryOnError + DefaultRetry = RetryNever // DefaultRetries is the default number of times a request is tried DefaultRetries = 0 // DefaultRequestTimeout is the default request timeout diff --git a/client/retry.go b/client/retry.go index 95b48297..26f8d2dd 100644 --- a/client/retry.go +++ b/client/retry.go @@ -14,22 +14,23 @@ func RetryAlways(ctx context.Context, req Request, retryCount int, err error) (b return true, nil } +// RetryNever never retry on error +func RetryNever(ctx context.Context, req Request, retryCount int, err error) (bool, error) { + return false, nil +} + // RetryOnError retries a request on a 500 or timeout error func RetryOnError(ctx context.Context, req Request, retryCount int, err error) (bool, error) { if err == nil { return false, nil } - e := errors.Parse(err.Error()) - if e == nil { - return false, nil - } - - switch e.Code { + me := errors.FromError(err) + switch me.Code { // retry on timeout or internal server error case 408, 500: return true, nil - default: - return false, nil } + + return false, nil }