From aaff62fff21bf1c87b2bf46f0d9edf46b19cc254 Mon Sep 17 00:00:00 2001 From: ajnart Date: Tue, 14 Jul 2026 20:17:19 +0200 Subject: [PATCH] fix(releases): return true from rate limit handlers to enable retry The octokit throttling plugin uses the return value of onRateLimit and onSecondaryRateLimit to decide whether to retry. Without returning true, rate-limited requests fail instead of being retried. Bounded to 1 retry (retryCount < 1) to prevent infinite retry loops. Addresses CodeRabbit review feedback. --- packages/request-handler/src/release-providers.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/request-handler/src/release-providers.ts b/packages/request-handler/src/release-providers.ts index ef849102d..fb5a5ec95 100644 --- a/packages/request-handler/src/release-providers.ts +++ b/packages/request-handler/src/release-providers.ts @@ -136,17 +136,19 @@ const getGithubApi = (baseUrl: string, userAgent: string, token?: string) => request: { fetch: fetchWithTrustedCertificatesAsync }, throttle: { enabled: true, - onRateLimit: (retryAfter: number, options: { url?: string; method?: string }) => { - logger.warn(`GitHub rate limit exceeded, retrying after ${retryAfter}s`, { + onRateLimit: (retryAfter: number, options: { url?: string; method?: string }, _octokit: unknown, retryCount: number) => { + logger.warn(`GitHub rate limit exceeded, retrying after ${retryAfter}s (attempt ${retryCount + 1})`, { url: options.url, method: options.method, }); + return retryCount < 1; }, - onSecondaryRateLimit: (retryAfter: number, options: { url?: string; method?: string }) => { - logger.warn(`GitHub secondary rate limit exceeded, retrying after ${retryAfter}s`, { + onSecondaryRateLimit: (retryAfter: number, options: { url?: string; method?: string }, _octokit: unknown, retryCount: number) => { + logger.warn(`GitHub secondary rate limit exceeded, retrying after ${retryAfter}s (attempt ${retryCount + 1})`, { url: options.url, method: options.method, }); + return retryCount < 1; }, }, userAgent,