Skip to content

fix(transport): a rate-limited request waits it out and replays - #20

Merged
Akayashuu merged 1 commit into
masterfrom
fix/a-rate-limited-request-waits-and-replays
Aug 5, 2026
Merged

fix(transport): a rate-limited request waits it out and replays#20
Akayashuu merged 1 commit into
masterfrom
fix/a-rate-limited-request-waits-and-replays

Conversation

@Akayashuu

Copy link
Copy Markdown
Collaborator

Le transport ne connaissait pas le 429 : il le remontait comme n'importe quelle erreur d'API. Or les buckets Discord sont petits — cinq écritures par quatre secondes sur certaines routes — donc un appelant qui enchaîne une poignée d'appels en tape un dans le cours normal de son travail.

Cas réel : Registry.Sync publie sept commandes à la suite, se prend un 429 à la cinquième et abandonne. Résultat, une commande neuve n'apparaissait jamais dans Discord, silencieusement.

Une réponse 429 dit exactement combien de temps attendre. Le transport l'attend et rejoue la requête (jusqu'à 4 fois, jamais plus de 30 s d'attente — au-delà ce n'est plus un bucket mais un quota, et il faut le remonter). Le corps est remarshalé une fois et renvoyé tel quel à chaque tentative.

@Akayashuu
Akayashuu merged commit 0c272c4 into master Aug 5, 2026
1 check passed
@Akayashuu
Akayashuu deleted the fix/a-rate-limited-request-waits-and-replays branch August 5, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant