From bffcccc1fed8ae5ae45649b6345dd74a830e5e41 Mon Sep 17 00:00:00 2001 From: chriss158 Date: Fri, 29 Jan 2021 13:40:09 +0100 Subject: [PATCH] Fix external auth reconnection loop if connection lost after refresh token expiration (#8279) --- src/external_app/external_auth.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/external_app/external_auth.ts b/src/external_app/external_auth.ts index f1624e77d6..cf7cf41804 100644 --- a/src/external_app/external_auth.ts +++ b/src/external_app/external_auth.ts @@ -68,8 +68,14 @@ export class ExternalAuth extends Auth { public async refreshAccessToken(force?: boolean) { if (this._tokenCallbackPromise && !force) { - await this._tokenCallbackPromise; - return; + try { + await this._tokenCallbackPromise; + return; + } catch (e) { + // _tokenCallbackPromise is in a rejected state + // Clear the _tokenCallbackPromise and go on refreshing access token + this._tokenCallbackPromise = undefined; + } } const payload: GetExternalAuthPayload = { callback: CALLBACK_SET_TOKEN,