HttpService retries rate-limited requests without honouring Retry-After
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- node.js, typescript
- Área
- backend, networking
Línea de trabajo
Start by locating HttpService and its get, getJson and download retry loops, then read how the project configures got retries. Check the tests for these methods and run them to establish current retry behavior. Done means all three methods use one retry layer, respect Retry-After with a maximum wait, and back off when the header is absent.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug
HttpService retries a rate-limited request (429) right away, ignoring when the server says the next try is allowed.
get and getJson wrap got in their own three-attempt loop, and download does the same around got.stream. These loops retry right away, without any delay. When a server answers 429, or 503, with a Retry-After header, the retries land inside the blocked window, so they fail the same way and add more load to an already limited server.
got also retries internally, with its own defaults, and the two retry layers multiply. One call can send up to nine requests.
Expected
- A 429 or 503 response with
Retry-Afterdelays the next attempt until that time, up to a sane maximum. If the wait would exceed the maximum, fail fast with the original error. - Without
Retry-After, back off between attempts instead of retrying immediately. - One retry layer: either got's
retryoptions (which honourRetry-After) or our loop, not both. get,getJsonanddownloadbehave the same.
Context
Found while making get/getJson fail fast on permanent 4xx errors (#7628). That change keeps retrying 408 and 429 but doesn't change their timing.
Opened by Claude Opus 5.5 in Claude Code on behalf of @viceice.
- Lenguaje dominante
- TypeScript
- Estrellas
- 58
- Forks
- 65
- Merge medio
- 11 h 31 min
- PR fusionados (30 d)
- 443
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de containerbase/base
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
containerbase/base#7891 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
containerbase/base#7842 ·
Los mantenedores suelen responder en 1 día
-
priority-3-normal tool/dotnet
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
containerbase/base#5996 ·
Los mantenedores suelen responder en 1 día
-
git prebuild (OpenSSL) breaks HTTPS on FIPS-enabled hosts: "Insufficient randomness"Posiblemente ocupada @ollie-sutton la tomó hace 1 día. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
containerbase/base#7922 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
containerbase/base#7908 ·
Los mantenedores suelen responder en 1 día
Todos los issues de containerbase/base
Issues similares
-
area:agent-view area:tui bug platform:macos
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
anthropics/claude-code#104558 ·
Los mantenedores suelen responder en 1 día
-
[CURRICULUM] computation fakdAbiertoupdater
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
UniversityOfHelsinkiCS/oodikone#5141 ·
-
maintanance
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
inmanta/web-console#7606 ·
Los mantenedores suelen responder en 1 día
-
bug skills
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
equinor/fusion-framework#5846 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100