firebase / firebase/firebase-admin-python
Firebase Admin not retried on auth request connection error
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 359
- Avg merge
- 5d 6m
- Merged PRs (30d)
- 2
Description
Even though `DEFAULT_RETRY_CONFIG` is good enough
```py
DEFAULT_RETRY_CONFIG = retry.Retry(
connect=1, read=1, status=4, status_forcelist=[500, 503],
raise_on_status=False, backoff_factor=0.5, **_ANY_METHOD)
```
I'm still periodically getting `('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))`. I started thinking it is very weird, because it seems that this connection error should be retried, no? It turned out, that this connection error occurs not in the request itself, which properly retries connection errors. It happens inside `AuthorizedSession.credentials.before_request`, which for auth requests instead of `DEFAULT_RETRY_CONFIG` uses
```py
retry_adapter = requests.adapters.HTTPAdapter(max_retries=3)
```
I think the right approach would be to form `auth_request` manually with the correct retry config in `HttpClient.__init__` and pass it to `AuthorizedSession` on creation.
What are your thoughts?
Contributor guide
Research direction
Start at HttpClient.__init__ and trace how AuthorizedSession is created, then inspect AuthorizedSession.credentials.before_request to confirm where auth-request retries are configured. Verify that connection-aborted auth requests use the intended retry configuration and that the existing request retry behavior remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- firebase, python
- Domain
- authentication
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100