From 29ddf29fc417c95f3b271033749ba9c0a42695b2 Mon Sep 17 00:00:00 2001 From: wobsoriano Date: Thu, 23 Jul 2026 13:58:32 -0700 Subject: [PATCH 1/3] chore(react-router): Bump minimum react-router version to 8.3.0 --- integration/templates/react-router-node/package.json | 8 ++++---- integration/templates/react-router-node/vite.config.ts | 9 +-------- packages/react-router/package.json | 2 +- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/integration/templates/react-router-node/package.json b/integration/templates/react-router-node/package.json index b2e14da5a50..62ba5d27ab8 100644 --- a/integration/templates/react-router-node/package.json +++ b/integration/templates/react-router-node/package.json @@ -9,15 +9,15 @@ "typecheck": "react-router typegen && tsc --build --noEmit" }, "dependencies": { - "@react-router/node": "8.0.1", - "@react-router/serve": "8.0.1", + "@react-router/node": "8.3.0", + "@react-router/serve": "8.3.01", "isbot": "^5.1.36", "react": "^19.2.7", "react-dom": "^19.2.7", - "react-router": "8.0.1" + "react-router": "8.3.0" }, "devDependencies": { - "@react-router/dev": "8.0.1", + "@react-router/dev": "8.3.0", "@types/node": "^22", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", diff --git a/integration/templates/react-router-node/vite.config.ts b/integration/templates/react-router-node/vite.config.ts index 75e3700c5c6..bb10bd5a6ff 100644 --- a/integration/templates/react-router-node/vite.config.ts +++ b/integration/templates/react-router-node/vite.config.ts @@ -2,20 +2,13 @@ import { reactRouter } from '@react-router/dev/vite'; import { defineConfig } from 'vite'; import tsconfigPaths from 'vite-tsconfig-paths'; -export default defineConfig(({ command }) => ({ +export default defineConfig(() => ({ plugins: [ reactRouter(), tsconfigPaths({ projects: ['./tsconfig.json'], }), ], - // Dev-only: `react-router dev` externalizes @clerk/react-router for SSR, so Node - // loads it with a different react-router export condition (production) than Vite - // gives the app (development). That yields two react-router instances and breaks - // the Router context. noExternal routes Clerk through Vite so they share one - // instance. Not applied to `build`, where bundling Clerk fails and the production - // server resolves a single react-router instance anyway. - ...(command === 'serve' ? { ssr: { noExternal: ['@clerk/react-router'] } } : {}), server: { port: process.env.PORT ? Number(process.env.PORT) : undefined, }, diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 7a71056c3f1..7db0c78befd 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -110,7 +110,7 @@ "peerDependencies": { "react": "catalog:peer-react", "react-dom": "catalog:peer-react", - "react-router": "^7.9.0 || ^8.0.0" + "react-router": "^7.9.0 || ^8.3.0" }, "engines": { "node": ">=20.9.0" From 193bdbeb41307fe3f77c8fd595380a8c7707bd9b Mon Sep 17 00:00:00 2001 From: wobsoriano Date: Fri, 24 Jul 2026 15:28:09 -0700 Subject: [PATCH 2/3] fix version --- integration/templates/react-router-node/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration/templates/react-router-node/package.json b/integration/templates/react-router-node/package.json index 62ba5d27ab8..940e3edea1e 100644 --- a/integration/templates/react-router-node/package.json +++ b/integration/templates/react-router-node/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@react-router/node": "8.3.0", - "@react-router/serve": "8.3.01", + "@react-router/serve": "8.3.0", "isbot": "^5.1.36", "react": "^19.2.7", "react-dom": "^19.2.7", From 8a705bf893d0f317a07acd0070353c34ec22e7da Mon Sep 17 00:00:00 2001 From: Robert Soriano Date: Fri, 24 Jul 2026 16:13:44 -0700 Subject: [PATCH 3/3] chore: add changeset --- .changeset/yellow-dancers-push.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/yellow-dancers-push.md diff --git a/.changeset/yellow-dancers-push.md b/.changeset/yellow-dancers-push.md new file mode 100644 index 00000000000..d0b6e01cc1e --- /dev/null +++ b/.changeset/yellow-dancers-push.md @@ -0,0 +1,5 @@ +--- +'@clerk/react-router': minor +--- + +Bump the minimum supported React Router v8 version to `8.3.0`, which fixes duplicate `react-router` instances during `react-router dev` SSR that broke the Router context ([remix-run/react-router#15232](https://github.com/remix-run/react-router/issues/15232)).