From c007ee6c3bbbfb07105343040c9a864caf159d1a Mon Sep 17 00:00:00 2001 From: tsightler Date: Sat, 4 Nov 2023 22:36:10 -0400 Subject: [PATCH] Improve error handling --- packages/ring-client-api/rest-client.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/ring-client-api/rest-client.ts b/packages/ring-client-api/rest-client.ts index e997e02c..25056bca 100644 --- a/packages/ring-client-api/rest-client.ts +++ b/packages/ring-client-api/rest-client.ts @@ -60,8 +60,9 @@ export interface ExtendedResponse { async function requestWithRetry( requestOptions: RequestOptions & { url: string; allowNoResponse?: boolean }, - retryCount: number, + retryCount?: number, ): Promise { + retryCount = retryCount || 0 try { const options = { ...defaultRequestOptions, @@ -83,7 +84,7 @@ async function requestWithRetry( } return data } catch (e: any) { - if (!e.response && !requestOptions.allowNoResponse && retryCount >= 3) { + if (!e.response && !requestOptions.allowNoResponse && retryCount % 3) { logError( `Failed to reach Ring server at ${requestOptions.url}. ${e.message}. Trying again in 5 seconds...`, ) @@ -95,7 +96,7 @@ async function requestWithRetry( logDebug(e) await delay(5000) - return requestWithRetry(requestOptions, retryCount ? 1 : retryCount++) + return requestWithRetry(requestOptions, retryCount++) } throw e } @@ -486,10 +487,7 @@ export class RingRestClient { logError(`Request to ${url} failed:`) logError(e) } - } - - if (!options.allowNoResponse) { - throw e + return response } }