From 495144a58fdcaada2ed0fd123b1e0960c5a4a5f1 Mon Sep 17 00:00:00 2001 From: wobsoriano Date: Wed, 17 Sep 2025 18:41:28 -0700 Subject: [PATCH 1/2] fix(nuxt): Prevent auth state flicker during navigation --- packages/nuxt/src/runtime/plugin.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/runtime/plugin.ts b/packages/nuxt/src/runtime/plugin.ts index 7e125ce4e78..6537829f275 100644 --- a/packages/nuxt/src/runtime/plugin.ts +++ b/packages/nuxt/src/runtime/plugin.ts @@ -4,6 +4,9 @@ import { clerkPlugin } from '@clerk/vue'; import { setErrorThrowerOptions } from '@clerk/vue/internal'; import { defineNuxtPlugin, navigateTo, useRuntimeConfig, useState } from 'nuxt/app'; +// @ts-expect-error: Handled by Nuxt. +import { nextTick } from '#imports'; + setErrorThrowerOptions({ packageName: PACKAGE_NAME }); setClerkJsLoadingErrorPackageName(PACKAGE_NAME); @@ -25,8 +28,16 @@ export default defineNuxtPlugin(nuxtApp => { version: PACKAGE_VERSION, environment: process.env.NODE_ENV, }, - routerPush: (to: string) => navigateTo(to), - routerReplace: (to: string) => navigateTo(to, { replace: true }), + routerPush: (to: string) => { + return nextTick(() => { + void navigateTo(to); + }); + }, + routerReplace: (to: string) => { + return nextTick(() => { + void navigateTo(to, { replace: true }); + }); + }, initialState: initialState.value, }); }); From 1e4d6281d515f0b56c26b5782f9d97301a36c898 Mon Sep 17 00:00:00 2001 From: Robert Soriano Date: Wed, 17 Sep 2025 18:54:03 -0700 Subject: [PATCH 2/2] chore: add changeset --- .changeset/funny-peaches-float.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/funny-peaches-float.md diff --git a/.changeset/funny-peaches-float.md b/.changeset/funny-peaches-float.md new file mode 100644 index 00000000000..b70c1189cc7 --- /dev/null +++ b/.changeset/funny-peaches-float.md @@ -0,0 +1,5 @@ +--- +"@clerk/nuxt": patch +--- + +Fixed an issue where Nuxt route middleware saw intermediate states during navigation, causing unwanted redirects during sign-in/sign-out flows.