googleapis / googleapis/google-api-dotnet-client

BackOffHandler to honor retryAfter value in case of rateLimitExceeded

Open
#2,715 5 comments 0 reactions 0 assignees View on GitHub
priority: p3 type: feature request
Dominant language
C#
Stars
1.5k
Forks
558
Avg merge
16h 34m
Merged PRs (30d)
17

Description

We are using BackoffHandler `https://github.com/googleapis/google-api-dotnet-client/blob/55e00d18f4024a44f7007a3dbfaf6fcba4ed67f5/Src/Support/Google.Apis.Core/Http/BackOffHandler.cs#L31` to retry the errors like ratelimitExceeded / userRateLimitExceeded.

But by default, it computes time to wait using exponential backoff logic. Google API sometimes gives the retryAfter value in case of 429 http status codes.
_Ex. The service gmail has thrown an exception. HttpStatusCode is 429. User-rate limit exceeded. Retry after **2024-01-10T23:55:00.392Z**_

Is it possible to honor this Retryafter value in backOffHandler ?
Else we need to have multiple UnsuccessfulResponse handlers -
1. Default BackoffHandler for 429 or other codes without retryAfter
2. RetryAfterHandler - custom implementation to honor retry value to wait.

Please confirm if this enhancement can be possible from library side.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.