diff --git a/src/lib/http/HttpManager.ts b/src/lib/http/HttpManager.ts index 731609c..7af894f 100644 --- a/src/lib/http/HttpManager.ts +++ b/src/lib/http/HttpManager.ts @@ -119,6 +119,7 @@ export class HttpClient { requestConfig.retryAttempt ||= 0; const isRateLimited = err.response && err.response.status === 429; + const isConnectionReset = (err as AxiosError).code === 'ECONNRESET'; if (isRateLimited) { if (this.config.logRetry) { @@ -136,6 +137,16 @@ export class HttpClient { await sleep(retryAfter * 1_000); requestConfig.retryAttempt = 0; + } else if (isConnectionReset) { + await sleep(1_000 * (requestConfig.retryAttempt + 1)); + + requestConfig.retryAttempt += 1; + + if (this.config.debug) { + console.log( + `(${requestConfig.retryAttempt}/${this.maxRetryAttempts}) retry ${requestConfig.url} - ${err}` + ); + } } else { await sleep(1_000);