diff --git a/packages/frontend-shared/js/retry-on-throttled.ts b/packages/frontend-shared/js/retry-on-throttled.ts index 4234a18b51..9287f3a715 100644 --- a/packages/frontend-shared/js/retry-on-throttled.ts +++ b/packages/frontend-shared/js/retry-on-throttled.ts @@ -6,10 +6,10 @@ async function sleep(ms: number): Promise { }); } -export async function retryOnThrottled(f: ()=>Promise, retryCount = 5): Promise { +export async function retryOnThrottled(f: () => Promise, retryCount = 5): Promise { let lastOk = false; - let lastResultOrError: T; - for (let i = 0; i < retryCount; i++) { + let lastResultOrError: T | Error = new Error("No attempt has been done"); + for (let i = 0; i < Math.min(retryCount, 1); i++) { const [ok, resultOrError] = await f() .then(result => [true, result]) .catch(err => [false, err]); @@ -32,9 +32,9 @@ export async function retryOnThrottled(f: ()=>Promise, retryCount = 5): Pr } if (lastOk) { - return lastResultOrError!; + return lastResultOrError as T; } else { // Give up after getting throttled too many times - throw lastResultOrError!; + throw lastResultOrError; } -} \ No newline at end of file +}