From ce9a30a3ff470ebcbd0395ef03cf64e0a4750ebc Mon Sep 17 00:00:00 2001 From: Alexey Zinoviev Date: Tue, 6 Aug 2024 20:37:01 +0400 Subject: [PATCH] uberf-7765: only retry network errors when loading config for desktop app (#6274) Signed-off-by: Alexey Zinoviev --- desktop/src/ui/preload.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/desktop/src/ui/preload.ts b/desktop/src/ui/preload.ts index 1daeb28ac2..4502e52ec1 100644 --- a/desktop/src/ui/preload.ts +++ b/desktop/src/ui/preload.ts @@ -19,21 +19,27 @@ export function concatLink (host: string, path: string): string { async function loadServerConfig (url: string): Promise { let retries = 5 - let error: any + let res: Response | undefined do { try { - return await (await fetch(url)).json() + res = await fetch(url) + break } catch (e) { - error = e retries-- - if (retries > 0) { - await new Promise((resolve) => setTimeout(resolve, 1000 * (5 - retries))) + if (retries === 0) { + throw new Error(`Failed to load server config: ${e}`) } + await new Promise((resolve) => setTimeout(resolve, 1000 * (5 - retries))) } } while (retries > 0) - throw new Error(`Failed to load server config: ${error}`) + if (res === undefined) { + // In theory should never get here + throw new Error('Failed to load server config') + } + + return await res.json() } const openArg = (process.argv.find((it) => it.startsWith('--open=')) ?? '').split('--open=')[1]