Per-request retry_params.min_wait_in_ms overwrites max_retry
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 78/100
Direção de pesquisa
Comece em openfga_sdk/api_client.py e em seu equivalente síncrono, lendo o bloco _retry_params por solicitação e o comportamento de RetryParams descrito na issue. Atualize os dois caminhos para que a configuração de espera por solicitação não substitua max_retry; em seguida, exercite o cenário list_objects com max_retry=0 e confirme que os limites de novas tentativas e a configuração de espera se comportam conforme esperado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Python
- Estrelas
- 85
- Forks
- 36
- Merge médio
- 5h 10min
- PRs com merge (30d)
- 3
Preparar o ambiente
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de openfga/python-sdk
-
Prevent generator syncs from regressing the README versionTalvez livre de novo @SoulPancake assumiu há 56 dias e não há nenhum pull request aberto. Aberta
openfga/python-sdk#308 · 1 responsável ·
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
openfga/python-sdk#214 · 1 comentário · 1 reação ·
-
bug
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
openfga/python-sdk#194 · 2 comentários ·
-
bug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 32/100
openfga/python-sdk#139 · 1 comentário ·
-
enhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
openfga/python-sdk#106 · 2 comentários ·
Todas as issues de openfga/python-sdk
Issues semelhantes
-
bug status/needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
prowler-cloud/prowler#12887 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
area: desktop platform: macos priority: p3 status: ready type: enhancement
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
use-agent-os/agent-os#3484 ·
Mantenedores costumam responder em até 2 dias
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
open-telemetry/opentelemetry-python-contrib#5113 · 2 comentários · 2 reações ·
Mantenedores costumam responder em até 1 dia
-
external
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
langchain-ai/docs#6255 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia