From cba3174823e52a085b470c29cb5353108f4854f3 Mon Sep 17 00:00:00 2001 From: Xiaopeng Dai Date: Wed, 24 Jul 2024 13:30:27 -0700 Subject: [PATCH 1/2] Should not automatically retry on serverside errors --- .../src/clients/middleware/retry/defaultRetryDecider.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/core/src/clients/middleware/retry/defaultRetryDecider.ts b/packages/core/src/clients/middleware/retry/defaultRetryDecider.ts index 874cc74314e..bd8b0dc9c75 100644 --- a/packages/core/src/clients/middleware/retry/defaultRetryDecider.ts +++ b/packages/core/src/clients/middleware/retry/defaultRetryDecider.ts @@ -22,8 +22,7 @@ export const getRetryDecider = return ( isConnectionError(error) || isThrottlingError(statusCode, errorCode) || - isClockSkewError(errorCode) || - isServerSideError(statusCode, errorCode) + isClockSkewError(errorCode) ); }; @@ -56,7 +55,3 @@ const isThrottlingError = (statusCode?: number, errorCode?: string) => const isConnectionError = (error?: unknown) => (error as Error)?.name === 'Network error'; - -const isServerSideError = (statusCode?: number, errorCode?: string) => - (!!statusCode && [500, 502, 503, 504].includes(statusCode)) || - (!!errorCode && TIMEOUT_ERROR_CODES.includes(errorCode)); From 4ea8367b198e43b493aa662f9c07d1ce6fde63dd Mon Sep 17 00:00:00 2001 From: Xiaopeng Dai Date: Wed, 24 Jul 2024 13:48:38 -0700 Subject: [PATCH 2/2] Stop automatically retrying on serverside errors --- .../src/clients/middleware/retry/defaultRetryDecider.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/core/src/clients/middleware/retry/defaultRetryDecider.ts b/packages/core/src/clients/middleware/retry/defaultRetryDecider.ts index bd8b0dc9c75..a52a62783f9 100644 --- a/packages/core/src/clients/middleware/retry/defaultRetryDecider.ts +++ b/packages/core/src/clients/middleware/retry/defaultRetryDecider.ts @@ -22,7 +22,8 @@ export const getRetryDecider = return ( isConnectionError(error) || isThrottlingError(statusCode, errorCode) || - isClockSkewError(errorCode) + isClockSkewError(errorCode) || + isServerSideTimeoutError(errorCode) ); }; @@ -55,3 +56,6 @@ const isThrottlingError = (statusCode?: number, errorCode?: string) => const isConnectionError = (error?: unknown) => (error as Error)?.name === 'Network error'; + +const isServerSideTimeoutError = (errorCode?: string) => + !!errorCode && TIMEOUT_ERROR_CODES.includes(errorCode);