diff --git a/gpgui/src/atoms/connectPortal.ts b/gpgui/src/atoms/connectPortal.ts index aaab248..ddbb556 100644 --- a/gpgui/src/atoms/connectPortal.ts +++ b/gpgui/src/atoms/connectPortal.ts @@ -64,15 +64,20 @@ export const connectPortalAtom = atom( throw err; } - if (err instanceof AbnormalPortalConfigError) { - logger.info( - `Got abnormal portal config: ${err.message}, retrying...` - ); - prelogin = await portalService.prelogin(portal); - continue; - } else { + if (!(err instanceof AbnormalPortalConfigError)) { throw err; } + + logger.info( + `Got abnormal portal config: ${err.message}, retrying...` + ); + set(statusAtom, "prelogin"); + prelogin = await portalService.prelogin(portal); + const isProcessing = get(isProcessingAtom); + if (!isProcessing) { + logger.info("Operation cancelled"); + break; + } } } } else {