From 258b2b84f95c4c30b1d9e307a8c632861175fef0 Mon Sep 17 00:00:00 2001 From: Felix Date: Wed, 11 Mar 2026 18:52:22 +0100 Subject: [PATCH] Fixed infinite retry loop on repeated 429 rate limit responses --- src/rest/sequentialBucket.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/rest/sequentialBucket.ts b/src/rest/sequentialBucket.ts index 96ba28f8..55165d41 100644 --- a/src/rest/sequentialBucket.ts +++ b/src/rest/sequentialBucket.ts @@ -179,6 +179,9 @@ export class SequentialBucket { if (res.status >= 400 && res.status < 500) { const data: any = await parseResponse(res); if (res.status === 429) { + if (attempts >= this.#handler.options.retryLimit!) + throw new DiscordRESTError(request, res, data, stackHolder.stack); + const delay = data?.retry_after ? data.retry_after * 1000 : retryAfter; this.#handler.creator?.emit( 'debug', @@ -187,7 +190,7 @@ export class SequentialBucket { if (delay) await Mutex.wait(delay); - return this.#execute(request, attempts); + return this.#execute(request, ++attempts); } throw new DiscordRESTError(request, res, data, stackHolder.stack);