[airbyte-cdk] - Update HttpClient
to call authenticator on backoff retry attempts in HttpClient._send
#47191
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
HttpClient._send
method. When thesource-google-analytics-data-api
would exceed its 1-hour quota threshold it would back off for 1800s (30 mins) twice. On the third attempt, after 60 minutes from the original attempt, the_send
method is retried again, but does not invoke the authenticator's__call__
method, resulting in an attempt w/o refreshing the access token. This is likely an issue for all connectors that use oauth and have to backoff for a duration longer than the lifespan of the access token._send
by moving error resolution handling to new_handle_error_resolution
method. (Required to due change exceeding flake8 complexity threshold)How
HttpClient._send
method already included logic for checking the attempt count. On subsequent attempts, will re-invoke the authenticator w/ the given request. For oauth authenticators, this will typically check the expiration of the token and refresh if needed.Review guide
http_client.py
User Impact
Can this PR be safely reverted and rolled back?