From 52dde474fcc807a931534eab342db78ef5cc119c Mon Sep 17 00:00:00 2001 From: Nicolas Hrubec Date: Sun, 24 May 2026 11:19:29 +0200 Subject: [PATCH] fix(tanstackstart-react): Add server-side replayIntegration no-op stub Using `Sentry.replayIntegration()` in shared client/server code (like `router.tsx`) causes a build error because `@sentry/node` doesn't export it. Adds a no-op stub on the server side, same pattern as `tanstackRouterBrowserTracingIntegration`. Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/tanstackstart-react/src/index.types.ts | 1 + packages/tanstackstart-react/src/server/index.ts | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/packages/tanstackstart-react/src/index.types.ts b/packages/tanstackstart-react/src/index.types.ts index 79edcef0bbfa..b3f68c031056 100644 --- a/packages/tanstackstart-react/src/index.types.ts +++ b/packages/tanstackstart-react/src/index.types.ts @@ -39,6 +39,7 @@ export declare const unleashIntegration: typeof clientSdk.unleashIntegration; export declare const wrapMiddlewaresWithSentry: typeof serverSdk.wrapMiddlewaresWithSentry; +export declare const replayIntegration: typeof clientSdk.replayIntegration; export declare const tanstackRouterBrowserTracingIntegration: typeof clientSdk.tanstackRouterBrowserTracingIntegration; export declare const sentryGlobalRequestMiddleware: typeof serverSdk.sentryGlobalRequestMiddleware; export declare const sentryGlobalFunctionMiddleware: typeof serverSdk.sentryGlobalFunctionMiddleware; diff --git a/packages/tanstackstart-react/src/server/index.ts b/packages/tanstackstart-react/src/server/index.ts index 0ae0968e574b..cc642d3dc3db 100644 --- a/packages/tanstackstart-react/src/server/index.ts +++ b/packages/tanstackstart-react/src/server/index.ts @@ -11,6 +11,17 @@ export { wrapMiddlewaresWithSentry } from './middleware'; export { sentryGlobalRequestMiddleware, sentryGlobalFunctionMiddleware } from './globalMiddleware'; export { createSentryTunnelRoute } from './tunnelRoute'; +/** + * A no-op stub of the replay integration for the server. Router setup code is shared between client and server, + * so this stub is needed to prevent build errors during SSR bundling. + */ +export function replayIntegration(_options?: Record): Integration { + return { + name: 'Replay', + setup() {}, + }; +} + /** * A no-op stub of the browser tracing integration for the server. Router setup code is shared between client and server, * so this stub is needed to prevent build errors during SSR bundling.