Per-request retry_params.min_wait_in_ms overwrites max_retry
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
Piste de recherche
Commencez dans openfga_sdk/api_client.py et son équivalent synchrone, en lisant le bloc _retry_params par requête ainsi que le comportement de RetryParams décrit dans l’issue. Mettez à jour les deux chemins afin que le paramètre d’attente par requête ne remplace pas max_retry, puis testez le scénario list_objects avec max_retry=0 et vérifiez que les limites de nouvelles tentatives et le paramètre d’attente se comportent comme prévu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Bug
In openfga_sdk/api_client.py (and the sync twin), applying per-request _retry_params assigns min_wait_in_ms onto max_retry:
if _retry_params is not None:
if _retry_params.max_retry is not None:
max_retry = _retry_params.max_retry
if _retry_params.min_wait_in_ms is not None:
max_retry = _retry_params.min_wait_in_ms # should be min_wait_in_ms =
if _retry_params.max_wait_in_sec is not None:
max_wait_in_sec = _retry_params.max_wait_in_sec
Introduced in https://github.com/openfga/python-sdk/commit/fb553501c29e38ff21d04ac4afccae83f995b6d2 (feat: improved handling of retries (#188)). Still present on main and in v0.10.4 (latest PyPI as of 2026-09-26).
RetryParams.__init__ always sets min_wait_in_ms (default 100), so any per-request RetryParams overwrites max_retry with the wait-in-ms value.
Impact
await client.list_objects(body, options={"retry_params": RetryParams(max_retry=0)})
Intended: 1 attempt (range(0 + 1)).
Actual: max_retry becomes 100 → 101 attempts on 5xx (range(100 + 1)).
Same bug in openfga_sdk/sync/api_client.py.
Expected
if _retry_params.min_wait_in_ms is not None:
min_wait_in_ms = _retry_params.min_wait_in_ms
Workaround
Pass a duck-typed object with max_retry=0 and min_wait_in_ms=None so the broken assignment is skipped.
- Langage dominant
- Python
- Étoiles
- 85
- Forks
- 37
- Merge moyen
- 5 h 10 min
- PR mergées (30 j)
- 3
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de openfga/python-sdk
-
Prevent generator syncs from regressing the README versionPeut-être à nouveau libre @SoulPancake l’a pris il y a 58 jours, et aucune pull request n’est ouverte. Ouverte
openfga/python-sdk#308 · 1 personne assignée ·
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
openfga/python-sdk#214 · 1 commentaire · 1 réaction ·
-
bug
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
openfga/python-sdk#194 · 2 commentaires ·
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 32/100
openfga/python-sdk#139 · 1 commentaire ·
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
openfga/python-sdk#106 · 2 commentaires ·
Toutes les issues de openfga/python-sdk
Issues similaires
-
bug server
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
sportsdataverse/sportsdataverse-py#641 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
googleapis/google-cloud-python#18532 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour