From 45ed282eedf98132774478a78eb93953831ac46e Mon Sep 17 00:00:00 2001 From: Ronni Baslund Date: Wed, 10 Jun 2026 18:54:07 +0200 Subject: [PATCH] fix(auth): unmount the module's build-time oidc mount before Redis mount MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nuxt-oidc-auth registers its own 'oidc' storage mount at build, so storage.mount('oidc', …) at runtime threw 'already mounted at oidc:' and crash-looped the new pods. Unmount the memory mount first. --- apps/operator/server/plugins/session-storage.ts | 8 ++++++-- apps/portal/server/plugins/session-storage.ts | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/operator/server/plugins/session-storage.ts b/apps/operator/server/plugins/session-storage.ts index bf415d0..17b4e2b 100644 --- a/apps/operator/server/plugins/session-storage.ts +++ b/apps/operator/server/plugins/session-storage.ts @@ -10,10 +10,14 @@ // operator-secrets). Unset in dev → in-memory mount stays, no Redis needed. import redisDriver from 'unstorage/drivers/redis' -export default defineNitroPlugin(() => { +export default defineNitroPlugin(async () => { const url = process.env.SESSION_REDIS_URL if (!url) return - useStorage().mount( + const storage = useStorage() + // The module ships its own build-time 'oidc' mount (memory driver) — it + // must be unmounted first or mount() throws 'already mounted at oidc:'. + await storage.unmount('oidc') + storage.mount( 'oidc', redisDriver({ url, diff --git a/apps/portal/server/plugins/session-storage.ts b/apps/portal/server/plugins/session-storage.ts index fb68299..c19e69a 100644 --- a/apps/portal/server/plugins/session-storage.ts +++ b/apps/portal/server/plugins/session-storage.ts @@ -10,10 +10,14 @@ // portal-secrets). Unset in dev → in-memory mount stays, no Redis needed. import redisDriver from 'unstorage/drivers/redis' -export default defineNitroPlugin(() => { +export default defineNitroPlugin(async () => { const url = process.env.SESSION_REDIS_URL if (!url) return - useStorage().mount( + const storage = useStorage() + // The module ships its own build-time 'oidc' mount (memory driver) — it + // must be unmounted first or mount() throws 'already mounted at oidc:'. + await storage.unmount('oidc') + storage.mount( 'oidc', redisDriver({ url,