diff --git a/apps/admin/src/plugins/1.router/additional-routes.ts b/apps/admin/src/plugins/1.router/additional-routes.ts index 8127d5f3..7d72c5c0 100644 --- a/apps/admin/src/plugins/1.router/additional-routes.ts +++ b/apps/admin/src/plugins/1.router/additional-routes.ts @@ -11,7 +11,15 @@ export const redirects: RouteRecordRaw[] = [ path: '/', name: 'index', redirect: to => { - const authStore = useAuthStore() + // This redirect fires during router.install(), which runs before + // Pinia is registered (1.router < 2.pinia). Guard against that. + let authStore + try { + authStore = useAuthStore() + } + catch { + return { name: 'login', query: to.query } + } if (!authStore.isAuthenticated) return { name: 'login', query: to.query } diff --git a/apps/admin/src/plugins/1.router/guards.ts b/apps/admin/src/plugins/1.router/guards.ts index c74f1cb3..bfec9afb 100644 --- a/apps/admin/src/plugins/1.router/guards.ts +++ b/apps/admin/src/plugins/1.router/guards.ts @@ -6,7 +6,15 @@ export const setupGuards = ( router: _RouterTyped ) => { router.beforeEach(async (to, from) => { - const authStore = useAuthStore(); + // Guard fires during router.install() before Pinia is registered + // (1.router loads before 2.pinia). Skip auth checks on that first call. + let authStore; + try { + authStore = useAuthStore(); + } + catch { + return; + } // Wait for initialization to complete (only blocks on first navigation) if (!authStore.isInitialized) {