Repository: TanStack/router
Pull request #2604 (2024-10-20 22:13:33)

fix(react-router): fix explicitUndefined links never matching
Small follow-up to #2592, as I noticed that it doesn't quite seem to work as I think would be expected - it does correctly _exclude_ the route when the parameter exists, however it doesn't _match_ the route when it doesn't. In other words, there's currently no way for `explicitUndefined` links to ever match a route. This PR fixes that.


Patch:
diff --git a/examples/react/authenticated-routes/package.json b/examples/react/authenticated-routes/package.json
index ad4a5e503..bc96628c9 100644
--- a/examples/react/authenticated-routes/package.json
+++ b/examples/react/authenticated-routes/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/basic-default-search-params/package.json b/examples/react/basic-default-search-params/package.json
index 6d850c6ce..95e733e03 100644
--- a/examples/react/basic-default-search-params/package.json
+++ b/examples/react/basic-default-search-params/package.json
@@ -10,8 +10,8 @@
   },
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "redaxios": "^0.5.1",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/basic-file-based-codesplitting/package.json b/examples/react/basic-file-based-codesplitting/package.json
index fa6810036..9bde5334b 100644
--- a/examples/react/basic-file-based-codesplitting/package.json
+++ b/examples/react/basic-file-based-codesplitting/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/basic-file-based/package.json b/examples/react/basic-file-based/package.json
index c4c028394..68f86fcf7 100644
--- a/examples/react/basic-file-based/package.json
+++ b/examples/react/basic-file-based/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/basic-react-query-file-based/package.json b/examples/react/basic-react-query-file-based/package.json
index bc6365368..b7be59aa0 100644
--- a/examples/react/basic-react-query-file-based/package.json
+++ b/examples/react/basic-react-query-file-based/package.json
@@ -11,8 +11,8 @@
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
     "@tanstack/react-query-devtools": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/basic-react-query/package.json b/examples/react/basic-react-query/package.json
index 610def52a..8ba5ea4fd 100644
--- a/examples/react/basic-react-query/package.json
+++ b/examples/react/basic-react-query/package.json
@@ -11,8 +11,8 @@
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
     "@tanstack/react-query-devtools": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
     "redaxios": "^0.5.1"
diff --git a/examples/react/basic-ssr-file-based/package.json b/examples/react/basic-ssr-file-based/package.json
index 7d04595bf..86b7d1f93 100644
--- a/examples/react/basic-ssr-file-based/package.json
+++ b/examples/react/basic-ssr-file-based/package.json
@@ -11,10 +11,10 @@
     "debug": "node --inspect-brk server"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/start": "^1.74.3",
     "get-port": "^7.1.0",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/basic-ssr-streaming-file-based/package.json b/examples/react/basic-ssr-streaming-file-based/package.json
index 6778f3fe9..522bee79d 100644
--- a/examples/react/basic-ssr-streaming-file-based/package.json
+++ b/examples/react/basic-ssr-streaming-file-based/package.json
@@ -11,10 +11,10 @@
     "debug": "node --inspect-brk server"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/start": "^1.74.3",
     "get-port": "^7.1.0",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/basic-virtual-file-based/package.json b/examples/react/basic-virtual-file-based/package.json
index b7dffbe29..42f06dccd 100644
--- a/examples/react/basic-virtual-file-based/package.json
+++ b/examples/react/basic-virtual-file-based/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "@tanstack/virtual-file-routes": "^1.64.0",
     "react": "^18.2.0",
diff --git a/examples/react/basic-virtual-inside-file-based/package.json b/examples/react/basic-virtual-inside-file-based/package.json
index 6b9704364..09b32f5d6 100644
--- a/examples/react/basic-virtual-inside-file-based/package.json
+++ b/examples/react/basic-virtual-inside-file-based/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "@tanstack/virtual-file-routes": "^1.64.0",
     "react": "^18.2.0",
diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json
index c86c9b6e1..874a33d63 100644
--- a/examples/react/basic/package.json
+++ b/examples/react/basic/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
     "redaxios": "^0.5.1"
diff --git a/examples/react/deferred-data/package.json b/examples/react/deferred-data/package.json
index e971baa02..e41c23433 100644
--- a/examples/react/deferred-data/package.json
+++ b/examples/react/deferred-data/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "redaxios": "^0.5.1",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/kitchen-sink-file-based/package.json b/examples/react/kitchen-sink-file-based/package.json
index c65e06d0e..d7d3df6ee 100644
--- a/examples/react/kitchen-sink-file-based/package.json
+++ b/examples/react/kitchen-sink-file-based/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "immer": "^10.1.1",
     "react": "^18.2.0",
diff --git a/examples/react/kitchen-sink-react-query-file-based/package.json b/examples/react/kitchen-sink-react-query-file-based/package.json
index dd9a3a799..1300484c7 100644
--- a/examples/react/kitchen-sink-react-query-file-based/package.json
+++ b/examples/react/kitchen-sink-react-query-file-based/package.json
@@ -11,8 +11,8 @@
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
     "@tanstack/react-query-devtools": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "immer": "^10.1.1",
     "react": "^18.2.0",
diff --git a/examples/react/kitchen-sink-react-query/package.json b/examples/react/kitchen-sink-react-query/package.json
index d04311a17..6ab05421d 100644
--- a/examples/react/kitchen-sink-react-query/package.json
+++ b/examples/react/kitchen-sink-react-query/package.json
@@ -11,8 +11,8 @@
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
     "@tanstack/react-query-devtools": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "redaxios": "^0.5.1",
     "immer": "^10.1.1",
     "react": "^18.2.0",
diff --git a/examples/react/kitchen-sink/package.json b/examples/react/kitchen-sink/package.json
index b7069b4c4..5cb0013fd 100644
--- a/examples/react/kitchen-sink/package.json
+++ b/examples/react/kitchen-sink/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "redaxios": "^0.5.1",
     "immer": "^10.1.1",
     "react": "^18.2.0",
diff --git a/examples/react/large-file-based/package.json b/examples/react/large-file-based/package.json
index 138d48a55..e0a046ff8 100644
--- a/examples/react/large-file-based/package.json
+++ b/examples/react/large-file-based/package.json
@@ -12,8 +12,8 @@
   },
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/location-masking/package.json b/examples/react/location-masking/package.json
index 13d0044c6..0b6523b09 100644
--- a/examples/react/location-masking/package.json
+++ b/examples/react/location-masking/package.json
@@ -11,8 +11,8 @@
   "dependencies": {
     "@radix-ui/react-dialog": "^1.1.2",
     "@tanstack/react-query": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "redaxios": "^0.5.1",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
diff --git a/examples/react/navigation-blocking/package.json b/examples/react/navigation-blocking/package.json
index 25792e4f6..81a3471de 100644
--- a/examples/react/navigation-blocking/package.json
+++ b/examples/react/navigation-blocking/package.json
@@ -10,8 +10,8 @@
   },
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "redaxios": "^0.5.1",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
diff --git a/examples/react/quickstart-file-based/package.json b/examples/react/quickstart-file-based/package.json
index 825fcbc7a..a007b1574 100644
--- a/examples/react/quickstart-file-based/package.json
+++ b/examples/react/quickstart-file-based/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/quickstart-rspack-file-based/package.json b/examples/react/quickstart-rspack-file-based/package.json
index 8e8434034..3034976ff 100644
--- a/examples/react/quickstart-rspack-file-based/package.json
+++ b/examples/react/quickstart-rspack-file-based/package.json
@@ -8,8 +8,8 @@
     "preview": "rsbuild preview"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "react": "^18.3.1",
     "react-dom": "^18.3.1"
   },
diff --git a/examples/react/quickstart-webpack-file-based/package.json b/examples/react/quickstart-webpack-file-based/package.json
index f0d934baa..e89500cae 100644
--- a/examples/react/quickstart-webpack-file-based/package.json
+++ b/examples/react/quickstart-webpack-file-based/package.json
@@ -7,8 +7,8 @@
     "build": "webpack build && tsc --noEmit"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "react": "^18.3.1",
     "react-dom": "^18.3.1"
   },
diff --git a/examples/react/quickstart/package.json b/examples/react/quickstart/package.json
index 14bd302de..a1c0409a0 100644
--- a/examples/react/quickstart/package.json
+++ b/examples/react/quickstart/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
   },
diff --git a/examples/react/router-monorepo-react-query/package.json b/examples/react/router-monorepo-react-query/package.json
index 89a41fd50..51952ede8 100644
--- a/examples/react/router-monorepo-react-query/package.json
+++ b/examples/react/router-monorepo-react-query/package.json
@@ -13,8 +13,8 @@
   "dependencies": {
     "@tanstack/react-query": "^5.56.2",
     "@tanstack/react-query-devtools": "^5.56.2",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/router-monorepo-react-query/packages/app/package.json b/examples/react/router-monorepo-react-query/packages/app/package.json
index 88c48bcf8..9cffdc2ac 100644
--- a/examples/react/router-monorepo-react-query/packages/app/package.json
+++ b/examples/react/router-monorepo-react-query/packages/app/package.json
@@ -19,7 +19,7 @@
     "@types/react": "^18.2.47",
     "@types/react-dom": "^18.2.18",
     "@vitejs/plugin-react": "^4.3.1",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/router-devtools": "^1.74.3",
     "typescript": "5.6.2",
     "vite": "^5.4.5",
     "vite-plugin-dts": "^4.2.3"
diff --git a/examples/react/router-monorepo-react-query/packages/router/package.json b/examples/react/router-monorepo-react-query/packages/router/package.json
index d6fd02f83..f9390b495 100644
--- a/examples/react/router-monorepo-react-query/packages/router/package.json
+++ b/examples/react/router-monorepo-react-query/packages/router/package.json
@@ -9,7 +9,7 @@
   "types": "./dist/index.d.ts",
   "dependencies": {
     "@tanstack/react-query": "^5.56.2",
-    "@tanstack/react-router": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "@router-mono-react-query/post-query": "workspace:*",
     "redaxios": "^0.5.1",
diff --git a/examples/react/router-monorepo-simple/package.json b/examples/react/router-monorepo-simple/package.json
index 920f7a719..fb4bf4cd5 100644
--- a/examples/react/router-monorepo-simple/package.json
+++ b/examples/react/router-monorepo-simple/package.json
@@ -9,8 +9,8 @@
     "dev-run": "pnpm router build && pnpm post-feature build && pnpm app dev"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/router-monorepo-simple/packages/app/package.json b/examples/react/router-monorepo-simple/packages/app/package.json
index 3af47c107..ac1a0e209 100644
--- a/examples/react/router-monorepo-simple/packages/app/package.json
+++ b/examples/react/router-monorepo-simple/packages/app/package.json
@@ -18,7 +18,7 @@
     "@types/react": "^18.2.47",
     "@types/react-dom": "^18.2.18",
     "@vitejs/plugin-react": "^4.3.1",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/router-devtools": "^1.74.3",
     "typescript": "5.6.2",
     "vite": "^5.4.5",
     "vite-plugin-dts": "^4.2.3"
diff --git a/examples/react/router-monorepo-simple/packages/router/package.json b/examples/react/router-monorepo-simple/packages/router/package.json
index 5090d0d99..37a4e7297 100644
--- a/examples/react/router-monorepo-simple/packages/router/package.json
+++ b/examples/react/router-monorepo-simple/packages/router/package.json
@@ -8,7 +8,7 @@
   "main": "./dist/index.js",
   "types": "./dist/index.d.ts",
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "redaxios": "^0.5.1",
     "zod": "^3.23.8",
diff --git a/examples/react/scroll-restoration/package.json b/examples/react/scroll-restoration/package.json
index 875d2fc26..8e2621036 100644
--- a/examples/react/scroll-restoration/package.json
+++ b/examples/react/scroll-restoration/package.json
@@ -9,9 +9,9 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
     "@tanstack/react-virtual": "^3.10.8",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/router-devtools": "^1.74.3",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
   },
diff --git a/examples/react/search-validator-adapters/package.json b/examples/react/search-validator-adapters/package.json
index 8990e0991..426f28af4 100644
--- a/examples/react/search-validator-adapters/package.json
+++ b/examples/react/search-validator-adapters/package.json
@@ -10,12 +10,12 @@
   },
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-arktype-adapter": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-arktype-adapter": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
-    "@tanstack/router-valibot-adapter": "^1.74.2",
-    "@tanstack/router-zod-adapter": "^1.74.2",
+    "@tanstack/router-valibot-adapter": "^1.74.3",
+    "@tanstack/router-zod-adapter": "^1.74.3",
     "arktype": "^2.0.0-rc.15",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/react/start-basic-auth/package.json b/examples/react/start-basic-auth/package.json
index ede843e3a..883bb45d2 100644
--- a/examples/react/start-basic-auth/package.json
+++ b/examples/react/start-basic-auth/package.json
@@ -11,9 +11,9 @@
   },
   "dependencies": {
     "@prisma/client": "5.20.0",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "dotenv": "^16.4.5",
     "prisma": "^5.20.0",
     "react": "^18.3.1",
diff --git a/examples/react/start-basic-react-query/package.json b/examples/react/start-basic-react-query/package.json
index 5697c5f89..f1bc506e4 100644
--- a/examples/react/start-basic-react-query/package.json
+++ b/examples/react/start-basic-react-query/package.json
@@ -11,10 +11,10 @@
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
     "@tanstack/react-query-devtools": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/react-router-with-query": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/react-router-with-query": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "react": "^18.3.1",
     "react-dom": "^18.3.1",
     "redaxios": "^0.5.1",
diff --git a/examples/react/start-basic-rsc/package.json b/examples/react/start-basic-rsc/package.json
index 13147c0cf..a0009c61c 100644
--- a/examples/react/start-basic-rsc/package.json
+++ b/examples/react/start-basic-rsc/package.json
@@ -10,9 +10,9 @@
   },
   "dependencies": {
     "@babel/plugin-syntax-typescript": "^7.25.7",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "redaxios": "^0.5.1",
     "tailwind-merge": "^2.5.3",
     "vinxi": "0.4.3"
diff --git a/examples/react/start-basic/package.json b/examples/react/start-basic/package.json
index 75115db95..7d4b4fba6 100644
--- a/examples/react/start-basic/package.json
+++ b/examples/react/start-basic/package.json
@@ -9,9 +9,9 @@
     "start": "vinxi start"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "react": "^18.3.1",
     "react-dom": "^18.3.1",
     "redaxios": "^0.5.1",
diff --git a/examples/react/start-clerk-basic/package.json b/examples/react/start-clerk-basic/package.json
index 0c6498c69..e69551d1b 100644
--- a/examples/react/start-clerk-basic/package.json
+++ b/examples/react/start-clerk-basic/package.json
@@ -10,9 +10,9 @@
   },
   "dependencies": {
     "@clerk/tanstack-start": "0.4.12",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "dotenv": "^16.4.5",
     "react": "^18.3.1",
     "react-dom": "^18.3.1",
diff --git a/examples/react/start-convex-trellaux/package.json b/examples/react/start-convex-trellaux/package.json
index 6d8b471f8..5e362260f 100644
--- a/examples/react/start-convex-trellaux/package.json
+++ b/examples/react/start-convex-trellaux/package.json
@@ -13,10 +13,10 @@
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
     "@tanstack/react-query-devtools": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/react-router-with-query": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/react-router-with-query": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "@convex-dev/react-query": "0.0.0-alpha.5",
     "concurrently": "^8.2.2",
     "convex": "^1.16.6",
diff --git a/examples/react/start-counter/package.json b/examples/react/start-counter/package.json
index 9605d61ef..98aca0a9f 100644
--- a/examples/react/start-counter/package.json
+++ b/examples/react/start-counter/package.json
@@ -9,8 +9,8 @@
     "start": "vinxi start"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "react": "^18.3.1",
     "react-dom": "^18.3.1",
     "vinxi": "0.4.3"
diff --git a/examples/react/start-supabase-basic/package.json b/examples/react/start-supabase-basic/package.json
index ab4827282..4266ab992 100644
--- a/examples/react/start-supabase-basic/package.json
+++ b/examples/react/start-supabase-basic/package.json
@@ -15,9 +15,9 @@
   "dependencies": {
     "@supabase/ssr": "^0.5.1",
     "@supabase/supabase-js": "^2.45.4",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "@vitejs/plugin-react": "^4.3.2",
     "react": "^18.3.1",
     "react-dom": "^18.3.1",
diff --git a/examples/react/start-trellaux/package.json b/examples/react/start-trellaux/package.json
index 46a19eb88..00359a390 100644
--- a/examples/react/start-trellaux/package.json
+++ b/examples/react/start-trellaux/package.json
@@ -11,10 +11,10 @@
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
     "@tanstack/react-query-devtools": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/react-router-with-query": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
-    "@tanstack/start": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/react-router-with-query": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
+    "@tanstack/start": "^1.74.3",
     "ky": "^1.7.2",
     "msw": "^2.4.11",
     "react": "^18.3.1",
diff --git a/examples/react/with-framer-motion/package.json b/examples/react/with-framer-motion/package.json
index d2e12d1df..3587f4690 100644
--- a/examples/react/with-framer-motion/package.json
+++ b/examples/react/with-framer-motion/package.json
@@ -9,8 +9,8 @@
     "start": "vite"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "redaxios": "^0.5.1",
     "framer-motion": "^11.11.8",
     "react": "^18.2.0",
diff --git a/examples/react/with-trpc-react-query/package.json b/examples/react/with-trpc-react-query/package.json
index cfdae9db2..6f5fcd404 100644
--- a/examples/react/with-trpc-react-query/package.json
+++ b/examples/react/with-trpc-react-query/package.json
@@ -10,8 +10,8 @@
   "dependencies": {
     "@tanstack/react-query": "^5.59.13",
     "@tanstack/react-query-devtools": "^5.59.13",
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "@trpc/client": "11.0.0-rc.571",
     "@trpc/react-query": "11.0.0-rc.571",
diff --git a/examples/react/with-trpc/package.json b/examples/react/with-trpc/package.json
index c3e42cff1..af186a9b0 100644
--- a/examples/react/with-trpc/package.json
+++ b/examples/react/with-trpc/package.json
@@ -8,8 +8,8 @@
     "start": "vinxi start"
   },
   "dependencies": {
-    "@tanstack/react-router": "^1.74.2",
-    "@tanstack/router-devtools": "^1.74.2",
+    "@tanstack/react-router": "^1.74.3",
+    "@tanstack/router-devtools": "^1.74.3",
     "@tanstack/router-plugin": "^1.74.2",
     "@trpc/client": "11.0.0-rc.571",
     "@trpc/server": "11.0.0-rc.571",
diff --git a/packages/create-router/package.json b/packages/create-router/package.json
index 7655ddd3c..a37a891ca 100644
--- a/packages/create-router/package.json
+++ b/packages/create-router/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/create-router",
-  "version": "1.74.2",
+  "version": "1.74.3",
   "description": "Modern and scalable routing for React applications",
   "author": "Tanner Linsley",
   "license": "MIT",
diff --git a/packages/react-router-with-query/package.json b/packages/react-router-with-query/package.json
index a55c07ea3..f0fed5c47 100644
--- a/packages/react-router-with-query/package.json
+++ b/packages/react-router-with-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/react-router-with-query",
-  "version": "1.74.2",
+  "version": "1.74.3",
   "description": "Modern and scalable routing for React applications",
   "author": "Tanner Linsley",
   "license": "MIT",
diff --git a/packages/react-router/package.json b/packages/react-router/package.json
index b9be58c21..b75e6cd4a 100644
--- a/packages/react-router/package.json
+++ b/packages/react-router/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/react-router",
-  "version": "1.74.2",
+  "version": "1.74.3",
   "description": "Modern and scalable routing for React applications",
   "author": "Tanner Linsley",
   "license": "MIT",
diff --git a/packages/react-router/src/utils.ts b/packages/react-router/src/utils.ts
index 6c836c335..a7301d3ac 100644
--- a/packages/react-router/src/utils.ts
+++ b/packages/react-router/src/utils.ts
@@ -248,7 +248,7 @@ export function deepEqual(
       return false
     }
 
-    return !bKeys.some((key) => !(key in a) || !deepEqual(a[key], b[key], opts))
+    return bKeys.every((key) => deepEqual(a[key], b[key], opts))
   }
 
   if (Array.isArray(a) && Array.isArray(b)) {
diff --git a/packages/router-arktype-adapter/package.json b/packages/router-arktype-adapter/package.json
index 9cfead039..1fced8976 100644
--- a/packages/router-arktype-adapter/package.json
+++ b/packages/router-arktype-adapter/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/router-arktype-adapter",
-  "version": "1.74.2",
+  "version": "1.74.3",
   "description": "Modern and scalable routing for React applications",
   "author": "Tanner Linsley",
   "license": "MIT",
diff --git a/packages/router-devtools/package.json b/packages/router-devtools/package.json
index fc2b9dd32..15a86d2bb 100644
--- a/packages/router-devtools/package.json
+++ b/packages/router-devtools/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/router-devtools",
-  "version": "1.74.2",
+  "version": "1.74.3",
   "description": "Modern and scalable routing for React applications",
   "author": "Tanner Linsley",
   "license": "MIT",
diff --git a/packages/router-valibot-adapter/package.json b/packages/router-valibot-adapter/package.json
index 0ac9b3f93..0817c86b9 100644
--- a/packages/router-valibot-adapter/package.json
+++ b/packages/router-valibot-adapter/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/router-valibot-adapter",
-  "version": "1.74.2",
+  "version": "1.74.3",
   "description": "Modern and scalable routing for React applications",
   "author": "Tanner Linsley",
   "license": "MIT",
diff --git a/packages/router-zod-adapter/package.json b/packages/router-zod-adapter/package.json
index 3aa104473..35fddc775 100644
--- a/packages/router-zod-adapter/package.json
+++ b/packages/router-zod-adapter/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/router-zod-adapter",
-  "version": "1.74.2",
+  "version": "1.74.3",
   "description": "Modern and scalable routing for React applications",
   "author": "Tanner Linsley",
   "license": "MIT",
diff --git a/packages/start/package.json b/packages/start/package.json
index 53232de2b..fa0443549 100644
--- a/packages/start/package.json
+++ b/packages/start/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/start",
-  "version": "1.74.2",
+  "version": "1.74.3",
   "description": "Modern and scalable routing for React applications",
   "author": "Tanner Linsley",
   "license": "MIT",


Test patch:
diff --git a/packages/react-router/tests/link.test.tsx b/packages/react-router/tests/link.test.tsx
index fd62c0d3a..4d2e1d2da 100644
--- a/packages/react-router/tests/link.test.tsx
+++ b/packages/react-router/tests/link.test.tsx
@@ -299,16 +299,10 @@ describe('Link', () => {
       expect(indexExactLink).toHaveAttribute('data-status', 'active')
 
       if (opts.explicitUndefined) {
-        expect(indexFooUndefinedLink).not.toHaveClass('active')
-        expect(indexFooUndefinedLink).toHaveClass('inactive')
-        expect(indexFooUndefinedLink).not.toHaveAttribute(
-          'aria-current',
-          'page',
-        )
-        expect(indexFooUndefinedLink).not.toHaveAttribute(
-          'data-status',
-          'active',
-        )
+        expect(indexFooUndefinedLink).toHaveClass('active')
+        expect(indexFooUndefinedLink).not.toHaveClass('inactive')
+        expect(indexFooUndefinedLink).toHaveAttribute('aria-current', 'page')
+        expect(indexFooUndefinedLink).toHaveAttribute('data-status', 'active')
       } else {
         expect(indexFooUndefinedLink).toHaveClass('active')
         expect(indexFooUndefinedLink).not.toHaveClass('inactive')
diff --git a/packages/react-router/tests/utils.test.ts b/packages/react-router/tests/utils.test.ts
index 9140d5017..486ccf041 100644
--- a/packages/react-router/tests/utils.test.ts
+++ b/packages/react-router/tests/utils.test.ts
@@ -368,7 +368,7 @@ describe('deepEqual', () => {
       it('should return `true` for objects', () => {
         const a = { a: { b: 'b' }, c: 'c' }
         const b = { a: { b: 'b' }, c: 'c', d: undefined }
-        expect(deepEqual(a, b, { partial, ignoreUndefined })).toEqual(false)
+        expect(deepEqual(a, b, { partial, ignoreUndefined })).toEqual(true)
         expect(deepEqual(b, a, { partial, ignoreUndefined })).toEqual(true)
       })
 
@@ -376,7 +376,7 @@ describe('deepEqual', () => {
         const a = { a: { b: 'b', x: undefined }, c: 'c' }
         const b = { a: { b: 'b' }, c: 'c' }
         expect(deepEqual([a], [b], { partial, ignoreUndefined })).toEqual(true)
-        expect(deepEqual([b], [a], { partial, ignoreUndefined })).toEqual(false)
+        expect(deepEqual([b], [a], { partial, ignoreUndefined })).toEqual(true)
       })
     })
   })