diff --git a/packages/remix/src/client/ClerkErrorBoundary.tsx b/packages/remix/src/client/ClerkErrorBoundary.tsx index 783ed39dc8..c1f1de184c 100644 --- a/packages/remix/src/client/ClerkErrorBoundary.tsx +++ b/packages/remix/src/client/ClerkErrorBoundary.tsx @@ -10,6 +10,15 @@ export function ClerkErrorBoundary(RootErrorBoundary?: React.ComponentType) { if (isRouteErrorResponse(error)) { const { __clerk_ssr_interstitial_html } = error?.data?.clerkState?.__internal_clerk_state || {}; if (__clerk_ssr_interstitial_html) { + /** + * In the (unlikely) case we trigger an interstitial during a client-side transition, we need to reload the page so the interstitial can properly trigger. Without a reload, the injected script tag does not get executed. + * Notably, this currently triggers for satellite domain syncing. + */ + if (typeof window !== 'undefined') { + window.location.reload(); + return; + } + return ; } }