Skip to content

Commit d7b6b4d

Browse files
committed
frontend/utils: retry when getting secret key fails
1 parent 1aeba59 commit d7b6b4d

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

frontend/src/utils.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,18 +146,25 @@ export async function storeSecretKeyInServiceWorker(secretKey: string): Promise<
146146

147147
let gettingSecretInProgress = false;
148148
let secretKeyPromise: Promise<string | null> | null = null;
149+
let retries = 0;
149150

150151
export async function getSecretKeyFromServiceWorker(): Promise<string | null> {
151152
if (gettingSecretInProgress) {
152153
return secretKeyPromise;
153154
}
154155

155-
secretKeyPromise = new Promise((resolve) => {
156-
if (!navigator.serviceWorker.controller) {
157-
console.error("No service worker controller found");
156+
secretKeyPromise = new Promise(async (resolve) => {
157+
if (!navigator.serviceWorker.controller && retries < 3) {
158+
console.error("No service worker controller found. Retrying...");
159+
retries++;
160+
resolve(await getSecretKeyFromServiceWorker());
161+
return;
162+
} else if (!navigator.serviceWorker.controller) {
163+
console.error("No service worker controller found after retries.");
158164
resolve(null);
159165
return;
160166
}
167+
retries = 0;
161168
gettingSecretInProgress = true;
162169

163170
const timeout = setTimeout(() => {

0 commit comments

Comments
 (0)