Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

HttpService retries rate-limited requests without honouring Retry-After

Abierto
#7,629 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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

type:bug

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-After delays 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 retry options (which honour Retry-After) or our loop, not both.
  • get, getJson and download behave 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

Abrir en Codespaces

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de containerbase/base

Todos los issues de containerbase/base

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.