diff --git a/frontend/src/component/providers/SWRProvider/SWRProvider.tsx b/frontend/src/component/providers/SWRProvider/SWRProvider.tsx index 4d3d4d9937..d745302624 100644 --- a/frontend/src/component/providers/SWRProvider/SWRProvider.tsx +++ b/frontend/src/component/providers/SWRProvider/SWRProvider.tsx @@ -9,6 +9,8 @@ interface ISWRProviderProps { isUnauthorized: () => boolean; } +const INVALID_TOKEN_ERROR = 'InvalidTokenError'; + const SWRProvider: React.FC = ({ children, setToastData, @@ -20,10 +22,15 @@ const SWRProvider: React.FC = ({ const handleFetchError = error => { setShowLoader(false); + console.log(error.info.name); if (error.status === 401) { cache.clear(); const path = location.pathname; - mutate(USER_CACHE_KEY, { ...error.info }, false); + // Only populate user with authDetails if 401 and + // error is not invalid token + if (error?.info?.name !== INVALID_TOKEN_ERROR) { + mutate(USER_CACHE_KEY, { ...error.info }, false); + } if (path === '/login') { return; } diff --git a/frontend/src/hooks/api/getters/httpErrorResponseHandler.ts b/frontend/src/hooks/api/getters/httpErrorResponseHandler.ts index 5d5a86f8fe..b9a2f84db6 100644 --- a/frontend/src/hooks/api/getters/httpErrorResponseHandler.ts +++ b/frontend/src/hooks/api/getters/httpErrorResponseHandler.ts @@ -17,6 +17,7 @@ const handleErrorResponses = (target: string) => async (res: Response) => { error.statusText = res.statusText; throw error; } + return res; };