HttpService retries rate-limited requests without honouring Retry-After
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, typescript
- Ambito
- backend, networking
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- TypeScript
- Stelle
- 58
- Fork
- 65
- Merge medio
- 11h 54m
- PR unite (30g)
- 428
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di containerbase/base
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
containerbase/base#7891 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
containerbase/base#7842 ·
I maintainer di solito rispondono entro 1 giorno
-
priority-3-normal tool/dotnet
Difficoltà 1/5 1-3 ore Idoneità per principianti 78/100
containerbase/base#5996 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
containerbase/base#7908 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
containerbase/base#7902 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di containerbase/base
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
maniator/verticopolis#1303 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
components-web-app/docs#297 ·
-
listFeatures/getFeatureExamples never return Kotlin examples for Android or server Kotlin SDKsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
appwrite/mcp-for-docs#23 · 1 commento ·
-
`@vanilla-extract/turbopack-plugin`: "getImageSize is not a function" with Next.js 16.4.x when a `.css.ts` file imports an imageForse già presa @aevarOrigo l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
vanilla-extract-css/vanilla-extract#1799 · 1 commento ·
-
native
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
prime-radiant-inc/evener#4839 ·
I maintainer di solito rispondono entro 1 giorno