From 33c3adbeade7aa695b7b474d4cee1997d87424bd Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Tue, 28 Oct 2025 04:44:22 +0100 Subject: [PATCH 1/7] test for invariant error --- .../server-functions/src/routeTree.gen.ts | 42 +++++++++++++++++++ .../src/routes/redirect-test-ssr/index.tsx | 32 ++++++++++++++ .../src/routes/redirect-test-ssr/target.tsx | 14 +++++++ .../tests/server-functions.spec.ts | 13 ++++++ .../server-functions/src/routeTree.gen.ts | 42 +++++++++++++++++++ .../src/routes/redirect-test-ssr/index.tsx | 32 ++++++++++++++ .../src/routes/redirect-test-ssr/target.tsx | 14 +++++++ .../tests/server-functions.spec.ts | 13 ++++++ ...-start-solid-invariant-failed-reproduction | 1 + 9 files changed, 203 insertions(+) create mode 100644 e2e/react-start/server-functions/src/routes/redirect-test-ssr/index.tsx create mode 100644 e2e/react-start/server-functions/src/routes/redirect-test-ssr/target.tsx create mode 100644 e2e/solid-start/server-functions/src/routes/redirect-test-ssr/index.tsx create mode 100644 e2e/solid-start/server-functions/src/routes/redirect-test-ssr/target.tsx create mode 160000 tanstack-start-solid-invariant-failed-reproduction diff --git a/e2e/react-start/server-functions/src/routeTree.gen.ts b/e2e/react-start/server-functions/src/routeTree.gen.ts index 4f9cea05de..b2346f1b1a 100644 --- a/e2e/react-start/server-functions/src/routeTree.gen.ts +++ b/e2e/react-start/server-functions/src/routeTree.gen.ts @@ -23,12 +23,14 @@ import { Route as ConsistentRouteImport } from './routes/consistent' import { Route as AbortSignalRouteImport } from './routes/abort-signal' import { Route as IndexRouteImport } from './routes/index' import { Route as RedirectTestIndexRouteImport } from './routes/redirect-test/index' +import { Route as RedirectTestSsrIndexRouteImport } from './routes/redirect-test-ssr/index' import { Route as PrimitivesIndexRouteImport } from './routes/primitives/index' import { Route as MiddlewareIndexRouteImport } from './routes/middleware/index' import { Route as FormdataRedirectIndexRouteImport } from './routes/formdata-redirect/index' import { Route as FactoryIndexRouteImport } from './routes/factory/index' import { Route as CookiesIndexRouteImport } from './routes/cookies/index' import { Route as RedirectTestTargetRouteImport } from './routes/redirect-test/target' +import { Route as RedirectTestSsrTargetRouteImport } from './routes/redirect-test-ssr/target' import { Route as MiddlewareSendServerFnRouteImport } from './routes/middleware/send-serverFn' import { Route as MiddlewareRequestMiddlewareRouteImport } from './routes/middleware/request-middleware' import { Route as MiddlewareClientMiddlewareRouterRouteImport } from './routes/middleware/client-middleware-router' @@ -105,6 +107,11 @@ const RedirectTestIndexRoute = RedirectTestIndexRouteImport.update({ path: '/redirect-test/', getParentRoute: () => rootRouteImport, } as any) +const RedirectTestSsrIndexRoute = RedirectTestSsrIndexRouteImport.update({ + id: '/redirect-test-ssr/', + path: '/redirect-test-ssr/', + getParentRoute: () => rootRouteImport, +} as any) const PrimitivesIndexRoute = PrimitivesIndexRouteImport.update({ id: '/primitives/', path: '/primitives/', @@ -135,6 +142,11 @@ const RedirectTestTargetRoute = RedirectTestTargetRouteImport.update({ path: '/redirect-test/target', getParentRoute: () => rootRouteImport, } as any) +const RedirectTestSsrTargetRoute = RedirectTestSsrTargetRouteImport.update({ + id: '/redirect-test-ssr/target', + path: '/redirect-test-ssr/target', + getParentRoute: () => rootRouteImport, +} as any) const MiddlewareSendServerFnRoute = MiddlewareSendServerFnRouteImport.update({ id: '/middleware/send-serverFn', path: '/middleware/send-serverFn', @@ -182,12 +194,14 @@ export interface FileRoutesByFullPath { '/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute '/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute '/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute + '/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute '/redirect-test/target': typeof RedirectTestTargetRoute '/cookies': typeof CookiesIndexRoute '/factory': typeof FactoryIndexRoute '/formdata-redirect': typeof FormdataRedirectIndexRoute '/middleware': typeof MiddlewareIndexRoute '/primitives': typeof PrimitivesIndexRoute + '/redirect-test-ssr': typeof RedirectTestSsrIndexRoute '/redirect-test': typeof RedirectTestIndexRoute '/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute } @@ -209,12 +223,14 @@ export interface FileRoutesByTo { '/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute '/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute '/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute + '/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute '/redirect-test/target': typeof RedirectTestTargetRoute '/cookies': typeof CookiesIndexRoute '/factory': typeof FactoryIndexRoute '/formdata-redirect': typeof FormdataRedirectIndexRoute '/middleware': typeof MiddlewareIndexRoute '/primitives': typeof PrimitivesIndexRoute + '/redirect-test-ssr': typeof RedirectTestSsrIndexRoute '/redirect-test': typeof RedirectTestIndexRoute '/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute } @@ -237,12 +253,14 @@ export interface FileRoutesById { '/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute '/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute '/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute + '/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute '/redirect-test/target': typeof RedirectTestTargetRoute '/cookies/': typeof CookiesIndexRoute '/factory/': typeof FactoryIndexRoute '/formdata-redirect/': typeof FormdataRedirectIndexRoute '/middleware/': typeof MiddlewareIndexRoute '/primitives/': typeof PrimitivesIndexRoute + '/redirect-test-ssr/': typeof RedirectTestSsrIndexRoute '/redirect-test/': typeof RedirectTestIndexRoute '/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute } @@ -266,12 +284,14 @@ export interface FileRouteTypes { | '/middleware/client-middleware-router' | '/middleware/request-middleware' | '/middleware/send-serverFn' + | '/redirect-test-ssr/target' | '/redirect-test/target' | '/cookies' | '/factory' | '/formdata-redirect' | '/middleware' | '/primitives' + | '/redirect-test-ssr' | '/redirect-test' | '/formdata-redirect/target/$name' fileRoutesByTo: FileRoutesByTo @@ -293,12 +313,14 @@ export interface FileRouteTypes { | '/middleware/client-middleware-router' | '/middleware/request-middleware' | '/middleware/send-serverFn' + | '/redirect-test-ssr/target' | '/redirect-test/target' | '/cookies' | '/factory' | '/formdata-redirect' | '/middleware' | '/primitives' + | '/redirect-test-ssr' | '/redirect-test' | '/formdata-redirect/target/$name' id: @@ -320,12 +342,14 @@ export interface FileRouteTypes { | '/middleware/client-middleware-router' | '/middleware/request-middleware' | '/middleware/send-serverFn' + | '/redirect-test-ssr/target' | '/redirect-test/target' | '/cookies/' | '/factory/' | '/formdata-redirect/' | '/middleware/' | '/primitives/' + | '/redirect-test-ssr/' | '/redirect-test/' | '/formdata-redirect/target/$name' fileRoutesById: FileRoutesById @@ -348,12 +372,14 @@ export interface RootRouteChildren { MiddlewareClientMiddlewareRouterRoute: typeof MiddlewareClientMiddlewareRouterRoute MiddlewareRequestMiddlewareRoute: typeof MiddlewareRequestMiddlewareRoute MiddlewareSendServerFnRoute: typeof MiddlewareSendServerFnRoute + RedirectTestSsrTargetRoute: typeof RedirectTestSsrTargetRoute RedirectTestTargetRoute: typeof RedirectTestTargetRoute CookiesIndexRoute: typeof CookiesIndexRoute FactoryIndexRoute: typeof FactoryIndexRoute FormdataRedirectIndexRoute: typeof FormdataRedirectIndexRoute MiddlewareIndexRoute: typeof MiddlewareIndexRoute PrimitivesIndexRoute: typeof PrimitivesIndexRoute + RedirectTestSsrIndexRoute: typeof RedirectTestSsrIndexRoute RedirectTestIndexRoute: typeof RedirectTestIndexRoute FormdataRedirectTargetNameRoute: typeof FormdataRedirectTargetNameRoute } @@ -458,6 +484,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof RedirectTestIndexRouteImport parentRoute: typeof rootRouteImport } + '/redirect-test-ssr/': { + id: '/redirect-test-ssr/' + path: '/redirect-test-ssr' + fullPath: '/redirect-test-ssr' + preLoaderRoute: typeof RedirectTestSsrIndexRouteImport + parentRoute: typeof rootRouteImport + } '/primitives/': { id: '/primitives/' path: '/primitives' @@ -500,6 +533,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof RedirectTestTargetRouteImport parentRoute: typeof rootRouteImport } + '/redirect-test-ssr/target': { + id: '/redirect-test-ssr/target' + path: '/redirect-test-ssr/target' + fullPath: '/redirect-test-ssr/target' + preLoaderRoute: typeof RedirectTestSsrTargetRouteImport + parentRoute: typeof rootRouteImport + } '/middleware/send-serverFn': { id: '/middleware/send-serverFn' path: '/middleware/send-serverFn' @@ -556,12 +596,14 @@ const rootRouteChildren: RootRouteChildren = { MiddlewareClientMiddlewareRouterRoute: MiddlewareClientMiddlewareRouterRoute, MiddlewareRequestMiddlewareRoute: MiddlewareRequestMiddlewareRoute, MiddlewareSendServerFnRoute: MiddlewareSendServerFnRoute, + RedirectTestSsrTargetRoute: RedirectTestSsrTargetRoute, RedirectTestTargetRoute: RedirectTestTargetRoute, CookiesIndexRoute: CookiesIndexRoute, FactoryIndexRoute: FactoryIndexRoute, FormdataRedirectIndexRoute: FormdataRedirectIndexRoute, MiddlewareIndexRoute: MiddlewareIndexRoute, PrimitivesIndexRoute: PrimitivesIndexRoute, + RedirectTestSsrIndexRoute: RedirectTestSsrIndexRoute, RedirectTestIndexRoute: RedirectTestIndexRoute, FormdataRedirectTargetNameRoute: FormdataRedirectTargetNameRoute, } diff --git a/e2e/react-start/server-functions/src/routes/redirect-test-ssr/index.tsx b/e2e/react-start/server-functions/src/routes/redirect-test-ssr/index.tsx new file mode 100644 index 0000000000..3d6e613b51 --- /dev/null +++ b/e2e/react-start/server-functions/src/routes/redirect-test-ssr/index.tsx @@ -0,0 +1,32 @@ +import { useQuery } from '@tanstack/react-query' +import { createFileRoute, redirect } from '@tanstack/react-router' +import { createServerFn, useServerFn } from '@tanstack/react-start' +import { Suspense } from 'react' + +const $redirectServerFn = createServerFn({ method: 'GET' }).handler( + async () => { + throw redirect({ to: '/redirect-test-ssr/target' }) + }, +) + +export const Route = createFileRoute('/redirect-test-ssr/')({ + component: RouteComponent, + // NOTE: No SSR options set - should work fine in React +}) + +function RouteComponent() { + const redirectFn = useServerFn($redirectServerFn) + const query = useQuery({ + queryKey: ['redirect-test-ssr'], + queryFn: () => redirectFn(), + }) + + return ( +
+

Redirect Source SSR

+ +
{JSON.stringify(query.data)}
+
+
+ ) +} diff --git a/e2e/react-start/server-functions/src/routes/redirect-test-ssr/target.tsx b/e2e/react-start/server-functions/src/routes/redirect-test-ssr/target.tsx new file mode 100644 index 0000000000..bd65dc0357 --- /dev/null +++ b/e2e/react-start/server-functions/src/routes/redirect-test-ssr/target.tsx @@ -0,0 +1,14 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute('/redirect-test-ssr/target')({ + component: RouteComponent, +}) + +function RouteComponent() { + return ( +
+

Redirect Target SSR

+

Successfully redirected!

+
+ ) +} diff --git a/e2e/react-start/server-functions/tests/server-functions.spec.ts b/e2e/react-start/server-functions/tests/server-functions.spec.ts index 1f3f171b12..5abc8b6b60 100644 --- a/e2e/react-start/server-functions/tests/server-functions.spec.ts +++ b/e2e/react-start/server-functions/tests/server-functions.spec.ts @@ -477,3 +477,16 @@ test('redirect in server function on direct navigation', async ({ page }) => { await expect(page.getByTestId('redirect-target')).toBeVisible() expect(page.url()).toContain('/redirect-test/target') }) + +test('redirect in server function called in query during SSR', async ({ + page, +}) => { + // Test direct navigation to a route with a server function that redirects + // when called inside a query without special SSR handling + // This should work fine in React + await page.goto('/redirect-test-ssr') + + // Should redirect to target page + await expect(page.getByTestId('redirect-target-ssr')).toBeVisible() + expect(page.url()).toContain('/redirect-test-ssr/target') +}) diff --git a/e2e/solid-start/server-functions/src/routeTree.gen.ts b/e2e/solid-start/server-functions/src/routeTree.gen.ts index 6668a59e02..5dfcad0664 100644 --- a/e2e/solid-start/server-functions/src/routeTree.gen.ts +++ b/e2e/solid-start/server-functions/src/routeTree.gen.ts @@ -23,12 +23,14 @@ import { Route as ConsistentRouteImport } from './routes/consistent' import { Route as AbortSignalRouteImport } from './routes/abort-signal' import { Route as IndexRouteImport } from './routes/index' import { Route as RedirectTestIndexRouteImport } from './routes/redirect-test/index' +import { Route as RedirectTestSsrIndexRouteImport } from './routes/redirect-test-ssr/index' import { Route as PrimitivesIndexRouteImport } from './routes/primitives/index' import { Route as MiddlewareIndexRouteImport } from './routes/middleware/index' import { Route as FormdataRedirectIndexRouteImport } from './routes/formdata-redirect/index' import { Route as FactoryIndexRouteImport } from './routes/factory/index' import { Route as CookiesIndexRouteImport } from './routes/cookies/index' import { Route as RedirectTestTargetRouteImport } from './routes/redirect-test/target' +import { Route as RedirectTestSsrTargetRouteImport } from './routes/redirect-test-ssr/target' import { Route as MiddlewareSendServerFnRouteImport } from './routes/middleware/send-serverFn' import { Route as MiddlewareRequestMiddlewareRouteImport } from './routes/middleware/request-middleware' import { Route as MiddlewareClientMiddlewareRouterRouteImport } from './routes/middleware/client-middleware-router' @@ -105,6 +107,11 @@ const RedirectTestIndexRoute = RedirectTestIndexRouteImport.update({ path: '/redirect-test/', getParentRoute: () => rootRouteImport, } as any) +const RedirectTestSsrIndexRoute = RedirectTestSsrIndexRouteImport.update({ + id: '/redirect-test-ssr/', + path: '/redirect-test-ssr/', + getParentRoute: () => rootRouteImport, +} as any) const PrimitivesIndexRoute = PrimitivesIndexRouteImport.update({ id: '/primitives/', path: '/primitives/', @@ -135,6 +142,11 @@ const RedirectTestTargetRoute = RedirectTestTargetRouteImport.update({ path: '/redirect-test/target', getParentRoute: () => rootRouteImport, } as any) +const RedirectTestSsrTargetRoute = RedirectTestSsrTargetRouteImport.update({ + id: '/redirect-test-ssr/target', + path: '/redirect-test-ssr/target', + getParentRoute: () => rootRouteImport, +} as any) const MiddlewareSendServerFnRoute = MiddlewareSendServerFnRouteImport.update({ id: '/middleware/send-serverFn', path: '/middleware/send-serverFn', @@ -182,12 +194,14 @@ export interface FileRoutesByFullPath { '/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute '/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute '/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute + '/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute '/redirect-test/target': typeof RedirectTestTargetRoute '/cookies': typeof CookiesIndexRoute '/factory': typeof FactoryIndexRoute '/formdata-redirect': typeof FormdataRedirectIndexRoute '/middleware': typeof MiddlewareIndexRoute '/primitives': typeof PrimitivesIndexRoute + '/redirect-test-ssr': typeof RedirectTestSsrIndexRoute '/redirect-test': typeof RedirectTestIndexRoute '/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute } @@ -209,12 +223,14 @@ export interface FileRoutesByTo { '/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute '/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute '/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute + '/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute '/redirect-test/target': typeof RedirectTestTargetRoute '/cookies': typeof CookiesIndexRoute '/factory': typeof FactoryIndexRoute '/formdata-redirect': typeof FormdataRedirectIndexRoute '/middleware': typeof MiddlewareIndexRoute '/primitives': typeof PrimitivesIndexRoute + '/redirect-test-ssr': typeof RedirectTestSsrIndexRoute '/redirect-test': typeof RedirectTestIndexRoute '/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute } @@ -237,12 +253,14 @@ export interface FileRoutesById { '/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute '/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute '/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute + '/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute '/redirect-test/target': typeof RedirectTestTargetRoute '/cookies/': typeof CookiesIndexRoute '/factory/': typeof FactoryIndexRoute '/formdata-redirect/': typeof FormdataRedirectIndexRoute '/middleware/': typeof MiddlewareIndexRoute '/primitives/': typeof PrimitivesIndexRoute + '/redirect-test-ssr/': typeof RedirectTestSsrIndexRoute '/redirect-test/': typeof RedirectTestIndexRoute '/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute } @@ -266,12 +284,14 @@ export interface FileRouteTypes { | '/middleware/client-middleware-router' | '/middleware/request-middleware' | '/middleware/send-serverFn' + | '/redirect-test-ssr/target' | '/redirect-test/target' | '/cookies' | '/factory' | '/formdata-redirect' | '/middleware' | '/primitives' + | '/redirect-test-ssr' | '/redirect-test' | '/formdata-redirect/target/$name' fileRoutesByTo: FileRoutesByTo @@ -293,12 +313,14 @@ export interface FileRouteTypes { | '/middleware/client-middleware-router' | '/middleware/request-middleware' | '/middleware/send-serverFn' + | '/redirect-test-ssr/target' | '/redirect-test/target' | '/cookies' | '/factory' | '/formdata-redirect' | '/middleware' | '/primitives' + | '/redirect-test-ssr' | '/redirect-test' | '/formdata-redirect/target/$name' id: @@ -320,12 +342,14 @@ export interface FileRouteTypes { | '/middleware/client-middleware-router' | '/middleware/request-middleware' | '/middleware/send-serverFn' + | '/redirect-test-ssr/target' | '/redirect-test/target' | '/cookies/' | '/factory/' | '/formdata-redirect/' | '/middleware/' | '/primitives/' + | '/redirect-test-ssr/' | '/redirect-test/' | '/formdata-redirect/target/$name' fileRoutesById: FileRoutesById @@ -348,12 +372,14 @@ export interface RootRouteChildren { MiddlewareClientMiddlewareRouterRoute: typeof MiddlewareClientMiddlewareRouterRoute MiddlewareRequestMiddlewareRoute: typeof MiddlewareRequestMiddlewareRoute MiddlewareSendServerFnRoute: typeof MiddlewareSendServerFnRoute + RedirectTestSsrTargetRoute: typeof RedirectTestSsrTargetRoute RedirectTestTargetRoute: typeof RedirectTestTargetRoute CookiesIndexRoute: typeof CookiesIndexRoute FactoryIndexRoute: typeof FactoryIndexRoute FormdataRedirectIndexRoute: typeof FormdataRedirectIndexRoute MiddlewareIndexRoute: typeof MiddlewareIndexRoute PrimitivesIndexRoute: typeof PrimitivesIndexRoute + RedirectTestSsrIndexRoute: typeof RedirectTestSsrIndexRoute RedirectTestIndexRoute: typeof RedirectTestIndexRoute FormdataRedirectTargetNameRoute: typeof FormdataRedirectTargetNameRoute } @@ -458,6 +484,13 @@ declare module '@tanstack/solid-router' { preLoaderRoute: typeof RedirectTestIndexRouteImport parentRoute: typeof rootRouteImport } + '/redirect-test-ssr/': { + id: '/redirect-test-ssr/' + path: '/redirect-test-ssr' + fullPath: '/redirect-test-ssr' + preLoaderRoute: typeof RedirectTestSsrIndexRouteImport + parentRoute: typeof rootRouteImport + } '/primitives/': { id: '/primitives/' path: '/primitives' @@ -500,6 +533,13 @@ declare module '@tanstack/solid-router' { preLoaderRoute: typeof RedirectTestTargetRouteImport parentRoute: typeof rootRouteImport } + '/redirect-test-ssr/target': { + id: '/redirect-test-ssr/target' + path: '/redirect-test-ssr/target' + fullPath: '/redirect-test-ssr/target' + preLoaderRoute: typeof RedirectTestSsrTargetRouteImport + parentRoute: typeof rootRouteImport + } '/middleware/send-serverFn': { id: '/middleware/send-serverFn' path: '/middleware/send-serverFn' @@ -556,12 +596,14 @@ const rootRouteChildren: RootRouteChildren = { MiddlewareClientMiddlewareRouterRoute: MiddlewareClientMiddlewareRouterRoute, MiddlewareRequestMiddlewareRoute: MiddlewareRequestMiddlewareRoute, MiddlewareSendServerFnRoute: MiddlewareSendServerFnRoute, + RedirectTestSsrTargetRoute: RedirectTestSsrTargetRoute, RedirectTestTargetRoute: RedirectTestTargetRoute, CookiesIndexRoute: CookiesIndexRoute, FactoryIndexRoute: FactoryIndexRoute, FormdataRedirectIndexRoute: FormdataRedirectIndexRoute, MiddlewareIndexRoute: MiddlewareIndexRoute, PrimitivesIndexRoute: PrimitivesIndexRoute, + RedirectTestSsrIndexRoute: RedirectTestSsrIndexRoute, RedirectTestIndexRoute: RedirectTestIndexRoute, FormdataRedirectTargetNameRoute: FormdataRedirectTargetNameRoute, } diff --git a/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/index.tsx b/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/index.tsx new file mode 100644 index 0000000000..8980f09f35 --- /dev/null +++ b/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/index.tsx @@ -0,0 +1,32 @@ +import { useQuery } from '@tanstack/solid-query' +import { createFileRoute, redirect } from '@tanstack/solid-router' +import { createServerFn, useServerFn } from '@tanstack/solid-start' +import { Suspense } from 'solid-js' + +const $redirectServerFn = createServerFn({ method: 'GET' }).handler( + async () => { + throw redirect({ to: '/redirect-test-ssr/target' }) + }, +) + +export const Route = createFileRoute('/redirect-test-ssr/')({ + component: RouteComponent, + // NOTE: No 'ssr: data-only' - this should cause the issue +}) + +function RouteComponent() { + const redirectFn = useServerFn($redirectServerFn) + const query = useQuery(() => ({ + queryKey: ['redirect-test-ssr'], + queryFn: () => redirectFn(), + })) + + return ( +
+

Redirect Source SSR

+ +
{JSON.stringify(query.data)}
+
+
+ ) +} diff --git a/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/target.tsx b/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/target.tsx new file mode 100644 index 0000000000..9a8afb0aac --- /dev/null +++ b/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/target.tsx @@ -0,0 +1,14 @@ +import { createFileRoute } from '@tanstack/solid-router' + +export const Route = createFileRoute('/redirect-test-ssr/target')({ + component: RouteComponent, +}) + +function RouteComponent() { + return ( +
+

Redirect Target SSR

+

Successfully redirected!

+
+ ) +} diff --git a/e2e/solid-start/server-functions/tests/server-functions.spec.ts b/e2e/solid-start/server-functions/tests/server-functions.spec.ts index 2076b281eb..f957e0de4b 100644 --- a/e2e/solid-start/server-functions/tests/server-functions.spec.ts +++ b/e2e/solid-start/server-functions/tests/server-functions.spec.ts @@ -483,3 +483,16 @@ test('redirect in server function on direct navigation', async ({ page }) => { await expect(page.getByTestId('redirect-target')).toBeVisible() expect(page.url()).toContain('/redirect-test/target') }) + +test('redirect in server function called in query during SSR', async ({ + page, +}) => { + // Test direct navigation to a route with a server function that redirects + // when called inside a query without ssr: 'data-only' + // This reproduces the issue from the bug report + await page.goto('/redirect-test-ssr') + + // Should redirect to target page + await expect(page.getByTestId('redirect-target-ssr')).toBeVisible() + expect(page.url()).toContain('/redirect-test-ssr/target') +}) diff --git a/tanstack-start-solid-invariant-failed-reproduction b/tanstack-start-solid-invariant-failed-reproduction new file mode 160000 index 0000000000..916438c040 --- /dev/null +++ b/tanstack-start-solid-invariant-failed-reproduction @@ -0,0 +1 @@ +Subproject commit 916438c0407e7bea890e70baab0f8de14da1bffd From 5accd8d03147729e20383594ba7c736a03570256 Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Tue, 28 Oct 2025 04:47:44 +0100 Subject: [PATCH 2/7] add explicit ssr --- .../server-functions/src/routes/redirect-test-ssr/index.tsx | 2 +- .../server-functions/src/routes/redirect-test-ssr/index.tsx | 2 +- tanstack-start-solid-invariant-failed-reproduction | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) delete mode 160000 tanstack-start-solid-invariant-failed-reproduction diff --git a/e2e/react-start/server-functions/src/routes/redirect-test-ssr/index.tsx b/e2e/react-start/server-functions/src/routes/redirect-test-ssr/index.tsx index 3d6e613b51..82739af64f 100644 --- a/e2e/react-start/server-functions/src/routes/redirect-test-ssr/index.tsx +++ b/e2e/react-start/server-functions/src/routes/redirect-test-ssr/index.tsx @@ -11,7 +11,7 @@ const $redirectServerFn = createServerFn({ method: 'GET' }).handler( export const Route = createFileRoute('/redirect-test-ssr/')({ component: RouteComponent, - // NOTE: No SSR options set - should work fine in React + ssr: true, }) function RouteComponent() { diff --git a/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/index.tsx b/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/index.tsx index 8980f09f35..7812953917 100644 --- a/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/index.tsx +++ b/e2e/solid-start/server-functions/src/routes/redirect-test-ssr/index.tsx @@ -11,7 +11,7 @@ const $redirectServerFn = createServerFn({ method: 'GET' }).handler( export const Route = createFileRoute('/redirect-test-ssr/')({ component: RouteComponent, - // NOTE: No 'ssr: data-only' - this should cause the issue + ssr: true, }) function RouteComponent() { diff --git a/tanstack-start-solid-invariant-failed-reproduction b/tanstack-start-solid-invariant-failed-reproduction deleted file mode 160000 index 916438c040..0000000000 --- a/tanstack-start-solid-invariant-failed-reproduction +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 916438c0407e7bea890e70baab0f8de14da1bffd From 4bbe13ca1ce30dd8c10704a5cfb479b27030fcac Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Tue, 28 Oct 2025 04:50:41 +0100 Subject: [PATCH 3/7] clean --- .../server-functions/tests/server-functions.spec.ts | 3 +-- .../server-functions/tests/server-functions.spec.ts | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/e2e/react-start/server-functions/tests/server-functions.spec.ts b/e2e/react-start/server-functions/tests/server-functions.spec.ts index 5abc8b6b60..ecf5996993 100644 --- a/e2e/react-start/server-functions/tests/server-functions.spec.ts +++ b/e2e/react-start/server-functions/tests/server-functions.spec.ts @@ -482,8 +482,7 @@ test('redirect in server function called in query during SSR', async ({ page, }) => { // Test direct navigation to a route with a server function that redirects - // when called inside a query without special SSR handling - // This should work fine in React + // when called inside a query with ssr: true await page.goto('/redirect-test-ssr') // Should redirect to target page diff --git a/e2e/solid-start/server-functions/tests/server-functions.spec.ts b/e2e/solid-start/server-functions/tests/server-functions.spec.ts index f957e0de4b..3b32deb5bd 100644 --- a/e2e/solid-start/server-functions/tests/server-functions.spec.ts +++ b/e2e/solid-start/server-functions/tests/server-functions.spec.ts @@ -488,8 +488,7 @@ test('redirect in server function called in query during SSR', async ({ page, }) => { // Test direct navigation to a route with a server function that redirects - // when called inside a query without ssr: 'data-only' - // This reproduces the issue from the bug report + // when called inside a query with ssr: true await page.goto('/redirect-test-ssr') // Should redirect to target page From d80178a9e6eae83eefe434a7dea5099cfacfb4a6 Mon Sep 17 00:00:00 2001 From: Brenley Dueck Date: Sun, 2 Nov 2025 22:42:57 -0600 Subject: [PATCH 4/7] Fix matches --- packages/solid-router/src/Match.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/solid-router/src/Match.tsx b/packages/solid-router/src/Match.tsx index 6a15d3ccfd..5e7724c4ff 100644 --- a/packages/solid-router/src/Match.tsx +++ b/packages/solid-router/src/Match.tsx @@ -368,11 +368,11 @@ export const Outlet = () => { }) return ( - - + <> + {renderRouteNotFound(router, route(), undefined)} - - + + {(matchId) => { // const nextMatch = @@ -391,7 +391,7 @@ export const Outlet = () => { ) }} - - + + ) } From 98be6c88618a059756628e2037752787fd5c4207 Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Mon, 3 Nov 2025 15:52:58 +0100 Subject: [PATCH 5/7] bump solid-query --- .../basic-solid-query-file-based/package.json | 2 +- .../basic-solid-query/package.json | 2 +- .../basic-solid-query/package.json | 2 +- .../query-integration/package.json | 2 +- e2e/solid-start/server-functions/package.json | 2 +- e2e/solid-start/server-routes/package.json | 2 +- .../basic-solid-query-file-based/package.json | 2 +- examples/solid/basic-solid-query/package.json | 2 +- .../start-basic-solid-query/package.json | 2 +- pnpm-lock.yaml | 68 +++++++++++-------- 10 files changed, 48 insertions(+), 38 deletions(-) diff --git a/e2e/solid-router/basic-solid-query-file-based/package.json b/e2e/solid-router/basic-solid-query-file-based/package.json index 9de0a0a0f5..7251add54b 100644 --- a/e2e/solid-router/basic-solid-query-file-based/package.json +++ b/e2e/solid-router/basic-solid-query-file-based/package.json @@ -13,7 +13,7 @@ "dependencies": { "@tailwindcss/postcss": "^4.1.15", "@tanstack/router-plugin": "workspace:^", - "@tanstack/solid-query": "^5.90.0", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-query-devtools": "^5.71.9", "@tanstack/solid-router": "workspace:^", "@tanstack/solid-router-devtools": "workspace:^", diff --git a/e2e/solid-router/basic-solid-query/package.json b/e2e/solid-router/basic-solid-query/package.json index 6fd215af79..155a19f928 100644 --- a/e2e/solid-router/basic-solid-query/package.json +++ b/e2e/solid-router/basic-solid-query/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@tailwindcss/postcss": "^4.1.15", - "@tanstack/solid-query": "^5.90.0", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-query-devtools": "^5.71.9", "@tanstack/solid-router": "workspace:^", "@tanstack/solid-router-devtools": "workspace:^", diff --git a/e2e/solid-start/basic-solid-query/package.json b/e2e/solid-start/basic-solid-query/package.json index 637ed21ed7..fc6f36c033 100644 --- a/e2e/solid-start/basic-solid-query/package.json +++ b/e2e/solid-start/basic-solid-query/package.json @@ -11,7 +11,7 @@ "test:e2e": "rm -rf port*.txt; playwright test --project=chromium" }, "dependencies": { - "@tanstack/solid-query": "^5.90.0", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-query-devtools": "^5.90.0", "@tanstack/solid-router": "workspace:^", "@tanstack/solid-router-devtools": "workspace:^", diff --git a/e2e/solid-start/query-integration/package.json b/e2e/solid-start/query-integration/package.json index e128c00c49..d9516fa0cc 100644 --- a/e2e/solid-start/query-integration/package.json +++ b/e2e/solid-start/query-integration/package.json @@ -11,7 +11,7 @@ "test:e2e": "rm -rf port*.txt; playwright test --project=chromium" }, "dependencies": { - "@tanstack/solid-query": "^5.90.0", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-query-devtools": "^5.90.0", "@tanstack/solid-router": "workspace:^", "@tanstack/solid-router-devtools": "workspace:^", diff --git a/e2e/solid-start/server-functions/package.json b/e2e/solid-start/server-functions/package.json index 4bf622f7e3..628380be87 100644 --- a/e2e/solid-start/server-functions/package.json +++ b/e2e/solid-start/server-functions/package.json @@ -11,7 +11,7 @@ "test:e2e": "rm -rf port*.txt; playwright test --project=chromium" }, "dependencies": { - "@tanstack/solid-query": "^5.90.6", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-router": "workspace:^", "@tanstack/solid-router-devtools": "workspace:^", "@tanstack/solid-router-ssr-query": "workspace:^", diff --git a/e2e/solid-start/server-routes/package.json b/e2e/solid-start/server-routes/package.json index d15f7ac4cc..1f26984805 100644 --- a/e2e/solid-start/server-routes/package.json +++ b/e2e/solid-start/server-routes/package.json @@ -11,7 +11,7 @@ "test:e2e": "playwright test --project=chromium" }, "dependencies": { - "@tanstack/solid-query": "^5.90.0", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-router": "workspace:^", "@tanstack/solid-router-devtools": "workspace:^", "@tanstack/solid-router-ssr-query": "workspace:^", diff --git a/examples/solid/basic-solid-query-file-based/package.json b/examples/solid/basic-solid-query-file-based/package.json index 89d1222311..2a19a55084 100644 --- a/examples/solid/basic-solid-query-file-based/package.json +++ b/examples/solid/basic-solid-query-file-based/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@tailwindcss/postcss": "^4.1.15", - "@tanstack/solid-query": "^5.90.0", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-query-devtools": "^5.71.9", "@tanstack/solid-router": "^1.134.8", "@tanstack/solid-router-devtools": "^1.134.8", diff --git a/examples/solid/basic-solid-query/package.json b/examples/solid/basic-solid-query/package.json index 8c9c236c20..c91666b3ff 100644 --- a/examples/solid/basic-solid-query/package.json +++ b/examples/solid/basic-solid-query/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@tailwindcss/postcss": "^4.1.15", - "@tanstack/solid-query": "^5.90.0", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-query-devtools": "^5.71.9", "@tanstack/solid-router": "^1.134.8", "@tanstack/solid-router-devtools": "^1.134.8", diff --git a/examples/solid/start-basic-solid-query/package.json b/examples/solid/start-basic-solid-query/package.json index 9673ee4f13..9e78fdb8f3 100644 --- a/examples/solid/start-basic-solid-query/package.json +++ b/examples/solid/start-basic-solid-query/package.json @@ -9,7 +9,7 @@ "start": "vite start" }, "dependencies": { - "@tanstack/solid-query": "^5.90.0", + "@tanstack/solid-query": "^5.90.9", "@tanstack/solid-query-devtools": "^5.90.0", "@tanstack/solid-router": "^1.134.8", "@tanstack/solid-router-devtools": "^1.134.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56abc3c3bc..56aaeeb633 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2227,11 +2227,11 @@ importers: specifier: ^4.1.15 version: 4.1.15 '@tanstack/solid-query': - specifier: ^5.90.0 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.71.9 - version: 5.72.2(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.72.2(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: workspace:^ version: link:../../../packages/solid-router @@ -2273,11 +2273,11 @@ importers: specifier: workspace:* version: link:../../../packages/router-plugin '@tanstack/solid-query': - specifier: ^5.90.0 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.71.9 - version: 5.72.2(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.72.2(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: workspace:^ version: link:../../../packages/solid-router @@ -2800,11 +2800,11 @@ importers: e2e/solid-start/basic-solid-query: dependencies: '@tanstack/solid-query': - specifier: ^5.90.0 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.90.0 - version: 5.90.4(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.90.4(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: workspace:^ version: link:../../../packages/solid-router @@ -2965,11 +2965,11 @@ importers: e2e/solid-start/query-integration: dependencies: '@tanstack/solid-query': - specifier: ^5.90.0 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.90.0 - version: 5.90.4(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.90.4(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: workspace:^ version: link:../../../packages/solid-router @@ -3185,8 +3185,8 @@ importers: e2e/solid-start/server-functions: dependencies: '@tanstack/solid-query': - specifier: ^5.90.6 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-router': specifier: workspace:^ version: link:../../../packages/solid-router @@ -3258,8 +3258,8 @@ importers: e2e/solid-start/server-routes: dependencies: '@tanstack/solid-query': - specifier: ^5.90.0 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-router': specifier: workspace:^ version: link:../../../packages/solid-router @@ -6882,11 +6882,11 @@ importers: specifier: ^4.1.15 version: 4.1.15 '@tanstack/solid-query': - specifier: ^5.90.0 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.71.9 - version: 5.72.2(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.72.2(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: ^1.134.8 version: link:../../../packages/solid-router @@ -6925,11 +6925,11 @@ importers: specifier: ^4.1.15 version: 4.1.15 '@tanstack/solid-query': - specifier: ^5.90.0 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.71.9 - version: 5.72.2(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.72.2(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: ^1.134.8 version: link:../../../packages/solid-router @@ -7474,11 +7474,11 @@ importers: examples/solid/start-basic-solid-query: dependencies: '@tanstack/solid-query': - specifier: ^5.90.0 - version: 5.90.6(solid-js@1.9.10) + specifier: ^5.90.9 + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.90.0 - version: 5.90.4(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.90.4(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: ^1.134.8 version: link:../../../packages/solid-router @@ -12796,6 +12796,11 @@ packages: peerDependencies: solid-js: 1.9.10 + '@tanstack/solid-query@5.90.9': + resolution: {integrity: sha512-OF+FpTHPmZxF5M0zcEERtUA0DhuFdNOpn0EAbASarDfIuNrvi8k07dhYV5zYyYwkt+eoe/RnAX65PdSP+Y0ONw==} + peerDependencies: + solid-js: 1.9.10 + '@tanstack/solid-store@0.8.0': resolution: {integrity: sha512-JwqTedbxyOGw7mfmdGkB0RGgefRCw/tNauc8tlMcaS1mV5wTFT8c1KIB3LgttuHaanMJEBeqQJ7bc/R0WTP1fA==} peerDependencies: @@ -23521,16 +23526,16 @@ snapshots: '@tanstack/solid-query': 5.72.0(solid-js@1.9.10) solid-js: 1.9.10 - '@tanstack/solid-query-devtools@5.72.2(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10)': + '@tanstack/solid-query-devtools@5.72.2(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10)': dependencies: '@tanstack/query-devtools': 5.72.2 - '@tanstack/solid-query': 5.90.6(solid-js@1.9.10) + '@tanstack/solid-query': 5.90.9(solid-js@1.9.10) solid-js: 1.9.10 - '@tanstack/solid-query-devtools@5.90.4(@tanstack/solid-query@5.90.6(solid-js@1.9.10))(solid-js@1.9.10)': + '@tanstack/solid-query-devtools@5.90.4(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10)': dependencies: '@tanstack/query-devtools': 5.90.1 - '@tanstack/solid-query': 5.90.6(solid-js@1.9.10) + '@tanstack/solid-query': 5.90.9(solid-js@1.9.10) solid-js: 1.9.10 '@tanstack/solid-query@5.72.0(solid-js@1.9.10)': @@ -23543,6 +23548,11 @@ snapshots: '@tanstack/query-core': 5.90.5 solid-js: 1.9.10 + '@tanstack/solid-query@5.90.9(solid-js@1.9.10)': + dependencies: + '@tanstack/query-core': 5.90.5 + solid-js: 1.9.10 + '@tanstack/solid-store@0.8.0(solid-js@1.9.10)': dependencies: '@tanstack/store': 0.8.0 From 13cc0c38e541481492a3c10fb7e012411df27cb9 Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Mon, 3 Nov 2025 16:10:23 +0100 Subject: [PATCH 6/7] update lock --- pnpm-lock.yaml | 164 +++++++++++++++++++++---------------------------- 1 file changed, 69 insertions(+), 95 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56aaeeb633..a3287779e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,10 +70,10 @@ importers: version: 0.22.0(@types/node@22.10.2)(eslint@9.22.0(jiti@2.6.1))(rollup@4.52.5)(typescript@5.9.2)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.8.1)) '@tanstack/query-core': specifier: ^5.90.0 - version: 5.90.5 + version: 5.90.6 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@types/node': specifier: 22.10.2 version: 22.10.2 @@ -405,10 +405,10 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -457,10 +457,10 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -1190,10 +1190,10 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -1382,10 +1382,10 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -1641,7 +1641,7 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -1723,7 +1723,7 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -3647,7 +3647,7 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -3696,7 +3696,7 @@ importers: version: 4.1.15 '@tanstack/react-query-devtools': specifier: ^5.67.2 - version: 5.67.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.67.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -3834,10 +3834,10 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -3883,10 +3883,10 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -4330,10 +4330,10 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -4385,10 +4385,10 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -4443,7 +4443,7 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -4498,7 +4498,7 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -4544,7 +4544,7 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -4799,10 +4799,10 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -4854,7 +4854,7 @@ importers: version: link:../router '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -4903,7 +4903,7 @@ importers: version: link:../router '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -4934,7 +4934,7 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) redaxios: specifier: ^0.5.1 version: 0.5.1 @@ -4962,7 +4962,7 @@ importers: version: link:../../../../../packages/history '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../../../packages/react-router @@ -5140,7 +5140,7 @@ importers: version: link:../router '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -5383,7 +5383,7 @@ importers: version: link:../../../packages/arktype-adapter '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -5661,10 +5661,10 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -5923,13 +5923,13 @@ importers: dependencies: '@convex-dev/react-query': specifier: 0.0.0-alpha.8 - version: 0.0.0-alpha.8(@tanstack/react-query@5.90.5(react@19.0.0))(convex@1.19.0(@clerk/clerk-react@5.53.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + version: 0.0.0-alpha.8(@tanstack/react-query@5.90.6(react@19.0.0))(convex@1.19.0(@clerk/clerk-react@5.53.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -6100,7 +6100,7 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -6369,10 +6369,10 @@ importers: dependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -6659,10 +6659,10 @@ importers: version: 4.1.15 '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-query-devtools': specifier: ^5.90.0 - version: 5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0) + version: 5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../../../packages/react-router @@ -6680,7 +6680,7 @@ importers: version: 11.4.3(typescript@5.9.2) '@trpc/tanstack-react-query': specifier: ^11.4.3 - version: 11.4.3(@tanstack/react-query@5.90.5(react@19.0.0))(@trpc/client@11.4.3(@trpc/server@11.4.3(typescript@5.9.2))(typescript@5.9.2))(@trpc/server@11.4.3(typescript@5.9.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.9.2) + version: 11.4.3(@tanstack/react-query@5.90.6(react@19.0.0))(@trpc/client@11.4.3(@trpc/server@11.4.3(typescript@5.9.2))(typescript@5.9.2))(@trpc/server@11.4.3(typescript@5.9.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.9.2) express: specifier: ^4.21.2 version: 4.21.2 @@ -7070,10 +7070,10 @@ importers: version: 4.1.15 '@tanstack/solid-query': specifier: ^5.72.0 - version: 5.72.0(solid-js@1.9.10) + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.72.0 - version: 5.72.2(@tanstack/solid-query@5.72.0(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.72.2(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: ^1.134.8 version: link:../../../packages/solid-router @@ -7119,10 +7119,10 @@ importers: version: link:../../../packages/router-plugin '@tanstack/solid-query': specifier: ^5.72.0 - version: 5.72.0(solid-js@1.9.10) + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-query-devtools': specifier: ^5.72.0 - version: 5.72.2(@tanstack/solid-query@5.72.0(solid-js@1.9.10))(solid-js@1.9.10) + version: 5.72.2(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10) '@tanstack/solid-router': specifier: ^1.134.8 version: link:../../../packages/solid-router @@ -7787,14 +7787,14 @@ importers: dependencies: '@tanstack/query-core': specifier: ^5.90.0 - version: 5.90.5 + version: 5.90.6 '@tanstack/router-ssr-query-core': specifier: workspace:* version: link:../router-ssr-query-core devDependencies: '@tanstack/react-query': specifier: ^5.90.0 - version: 5.90.5(react@19.0.0) + version: 5.90.6(react@19.0.0) '@tanstack/react-router': specifier: workspace:* version: link:../react-router @@ -8114,7 +8114,7 @@ importers: devDependencies: '@tanstack/query-core': specifier: ^5.90.0 - version: 5.90.5 + version: 5.90.6 '@tanstack/router-core': specifier: workspace:* version: link:../router-core @@ -8286,7 +8286,7 @@ importers: dependencies: '@tanstack/query-core': specifier: ^5.90.0 - version: 5.90.5 + version: 5.90.6 '@tanstack/router-ssr-query-core': specifier: workspace:* version: link:../router-ssr-query-core @@ -8296,7 +8296,7 @@ importers: devDependencies: '@tanstack/solid-query': specifier: '>=5.90.0' - version: 5.90.6(solid-js@1.9.10) + version: 5.90.9(solid-js@1.9.10) '@tanstack/solid-router': specifier: workspace:* version: link:../solid-router @@ -12724,8 +12724,8 @@ packages: resolution: {integrity: sha512-URVXmXwlZXL75AFyvyOORef1tv2f16dEaFntwLYnBHoKLQMxyWYRzQrnXooxO1xf+GidJuDSZSC6Rc9UX1aK7g==} engines: {node: '>=18'} - '@tanstack/query-core@5.90.5': - resolution: {integrity: sha512-wLamYp7FaDq6ZnNehypKI5fNvxHPfTYylE0m/ZpuuzJfJqhR5Pxg9gvGBHZx4n7J+V5Rg5mZxHHTlv25Zt5u+w==} + '@tanstack/query-core@5.90.6': + resolution: {integrity: sha512-AnZSLF26R8uX+tqb/ivdrwbVdGemdEDm1Q19qM6pry6eOZ6bEYiY7mWhzXT1YDIPTNEVcZ5kYP9nWjoxDLiIVw==} '@tanstack/query-devtools@5.67.2': resolution: {integrity: sha512-O4QXFFd7xqp6EX7sdvc9tsVO8nm4lpWBqwpgjpVLW5g7IeOY6VnS/xvs/YzbRhBVkKTMaJMOUGU7NhSX+YGoNg==} @@ -12757,8 +12757,8 @@ packages: '@tanstack/react-query': ^5.90.0 react: ^19.0.0 - '@tanstack/react-query@5.90.5': - resolution: {integrity: sha512-pN+8UWpxZkEJ/Rnnj2v2Sxpx1WFlaa9L6a4UO89p6tTQbeo+m0MS8oYDjbggrR8QcTyjKoYWKS3xJQGr3ExT8Q==} + '@tanstack/react-query@5.90.6': + resolution: {integrity: sha512-gB1sljYjcobZKxjPbKSa31FUTyr+ROaBdoH+wSSs9Dk+yDCmMs+TkTV3PybRRVLC7ax7q0erJ9LvRWnMktnRAw==} peerDependencies: react: ^19.0.0 @@ -12786,16 +12786,6 @@ packages: '@tanstack/solid-query': ^5.90.4 solid-js: 1.9.10 - '@tanstack/solid-query@5.72.0': - resolution: {integrity: sha512-zQ27dZEakN05hZB9C+qTKgtBU3N7Li3rx++nUOd4K5LtrTMjiIEp2FEbYoGe9B0Pn9tF5CIthc9fknl/qBVI5g==} - peerDependencies: - solid-js: 1.9.10 - - '@tanstack/solid-query@5.90.6': - resolution: {integrity: sha512-Ma5A3uQ2rqVCznR8FniNLHWYDFLtveVb2b+JMD1F+x3TgRTevVlGfiUfpL1KaFVWJMUX3ASvCB+aUQpeIBRDvA==} - peerDependencies: - solid-js: 1.9.10 - '@tanstack/solid-query@5.90.9': resolution: {integrity: sha512-OF+FpTHPmZxF5M0zcEERtUA0DhuFdNOpn0EAbASarDfIuNrvi8k07dhYV5zYyYwkt+eoe/RnAX65PdSP+Y0ONw==} peerDependencies: @@ -19661,9 +19651,9 @@ snapshots: '@types/conventional-commits-parser': 5.0.1 chalk: 5.4.1 - '@convex-dev/react-query@0.0.0-alpha.8(@tanstack/react-query@5.90.5(react@19.0.0))(convex@1.19.0(@clerk/clerk-react@5.53.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))': + '@convex-dev/react-query@0.0.0-alpha.8(@tanstack/react-query@5.90.6(react@19.0.0))(convex@1.19.0(@clerk/clerk-react@5.53.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))': dependencies: - '@tanstack/react-query': 5.90.5(react@19.0.0) + '@tanstack/react-query': 5.90.6(react@19.0.0) convex: 1.19.0(@clerk/clerk-react@5.53.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@cspotcode/source-map-support@0.8.1': @@ -23469,7 +23459,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/query-core@5.90.5': {} + '@tanstack/query-core@5.90.6': {} '@tanstack/query-devtools@5.67.2': {} @@ -23490,21 +23480,21 @@ snapshots: - solid-js - utf-8-validate - '@tanstack/react-query-devtools@5.67.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0)': + '@tanstack/react-query-devtools@5.67.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0)': dependencies: '@tanstack/query-devtools': 5.67.2 - '@tanstack/react-query': 5.90.5(react@19.0.0) + '@tanstack/react-query': 5.90.6(react@19.0.0) react: 19.0.0 - '@tanstack/react-query-devtools@5.90.2(@tanstack/react-query@5.90.5(react@19.0.0))(react@19.0.0)': + '@tanstack/react-query-devtools@5.90.2(@tanstack/react-query@5.90.6(react@19.0.0))(react@19.0.0)': dependencies: '@tanstack/query-devtools': 5.90.1 - '@tanstack/react-query': 5.90.5(react@19.0.0) + '@tanstack/react-query': 5.90.6(react@19.0.0) react: 19.0.0 - '@tanstack/react-query@5.90.5(react@19.0.0)': + '@tanstack/react-query@5.90.6(react@19.0.0)': dependencies: - '@tanstack/query-core': 5.90.5 + '@tanstack/query-core': 5.90.6 react: 19.0.0 '@tanstack/react-store@0.8.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': @@ -23520,12 +23510,6 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@tanstack/solid-query-devtools@5.72.2(@tanstack/solid-query@5.72.0(solid-js@1.9.10))(solid-js@1.9.10)': - dependencies: - '@tanstack/query-devtools': 5.72.2 - '@tanstack/solid-query': 5.72.0(solid-js@1.9.10) - solid-js: 1.9.10 - '@tanstack/solid-query-devtools@5.72.2(@tanstack/solid-query@5.90.9(solid-js@1.9.10))(solid-js@1.9.10)': dependencies: '@tanstack/query-devtools': 5.72.2 @@ -23538,19 +23522,9 @@ snapshots: '@tanstack/solid-query': 5.90.9(solid-js@1.9.10) solid-js: 1.9.10 - '@tanstack/solid-query@5.72.0(solid-js@1.9.10)': - dependencies: - '@tanstack/query-core': 5.90.5 - solid-js: 1.9.10 - - '@tanstack/solid-query@5.90.6(solid-js@1.9.10)': - dependencies: - '@tanstack/query-core': 5.90.5 - solid-js: 1.9.10 - '@tanstack/solid-query@5.90.9(solid-js@1.9.10)': dependencies: - '@tanstack/query-core': 5.90.5 + '@tanstack/query-core': 5.90.6 solid-js: 1.9.10 '@tanstack/solid-store@0.8.0(solid-js@1.9.10)': @@ -23644,9 +23618,9 @@ snapshots: dependencies: typescript: 5.9.2 - '@trpc/tanstack-react-query@11.4.3(@tanstack/react-query@5.90.5(react@19.0.0))(@trpc/client@11.4.3(@trpc/server@11.4.3(typescript@5.9.2))(typescript@5.9.2))(@trpc/server@11.4.3(typescript@5.9.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.9.2)': + '@trpc/tanstack-react-query@11.4.3(@tanstack/react-query@5.90.6(react@19.0.0))(@trpc/client@11.4.3(@trpc/server@11.4.3(typescript@5.9.2))(typescript@5.9.2))(@trpc/server@11.4.3(typescript@5.9.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.9.2)': dependencies: - '@tanstack/react-query': 5.90.5(react@19.0.0) + '@tanstack/react-query': 5.90.6(react@19.0.0) '@trpc/client': 11.4.3(@trpc/server@11.4.3(typescript@5.9.2))(typescript@5.9.2) '@trpc/server': 11.4.3(typescript@5.9.2) react: 19.0.0 From 4d70237de11ee5ad54b34f135d105c9ccdb280f5 Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Mon, 3 Nov 2025 17:10:08 +0100 Subject: [PATCH 7/7] check for redirect before throwing not-found --- packages/solid-router/src/Match.tsx | 62 ++++++++++++++++++----------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/packages/solid-router/src/Match.tsx b/packages/solid-router/src/Match.tsx index 5e7724c4ff..88f67049f2 100644 --- a/packages/solid-router/src/Match.tsx +++ b/packages/solid-router/src/Match.tsx @@ -367,31 +367,45 @@ export const Outlet = () => { }, }) + const childMatchStatus = useRouterState({ + select: (s) => { + const matches = s.matches + const index = matches.findIndex((d) => d.id === matchId()) + return matches[index + 1]?.status + }, + }) + + // Only show not-found if we're not in a redirected state + const shouldShowNotFound = () => + childMatchStatus() !== 'redirected' && parentGlobalNotFound() + return ( - <> - - {renderRouteNotFound(router, route(), undefined)} - - - {(matchId) => { - // const nextMatch = - - return ( - } + + {renderRouteNotFound(router, route(), undefined)} + + } + > + {(matchId) => { + // const nextMatch = + + return ( + } + > + + } > - - } - > - - - - ) - }} - - + + + + ) + }} + ) }