firebase / firebase/firebase-admin-python

Firebase Admin not retried on auth request connection error

Open
#852 1 comment 1 reaction 0 assignees View on GitHub
api: core
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.