diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Auth/AuthProviders/AuthProvider.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Auth/AuthProviders/AuthProvider.tsx index 7c8d5bb10a5..b7f720a9fdd 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Auth/AuthProviders/AuthProvider.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Auth/AuthProviders/AuthProvider.tsx @@ -99,6 +99,7 @@ const isEmailVerifyField = 'isEmailVerified'; let requestInterceptor: number | null = null; let responseInterceptor: number | null = null; +let failedLoggedInUserRequest: boolean | null; export const AuthProvider = ({ childComponentType, @@ -290,6 +291,12 @@ export const AuthProvider = ({ // Start expiry timer on successful silent signIn // eslint-disable-next-line @typescript-eslint/no-use-before-define startTokenExpiryTimer(); + + // Retry the failed request after successful silent signIn + if (failedLoggedInUserRequest) { + await getLoggedInUserDetails(); + failedLoggedInUserRequest = null; + } } else { // reset user details if silent signIn fails resetUserDetails(forceLogout); @@ -510,6 +517,10 @@ export const AuthProvider = ({ if (error.response) { const { status } = error.response; if (status === ClientErrors.UNAUTHORIZED) { + // store the failed request for retry after successful silent signIn + if (error.config.url === '/users/loggedInUser') { + failedLoggedInUserRequest = true; + } handleStoreProtectedRedirectPath(); trySilentSignIn(true); }