Repository navigation
@sentry/tanstackstart-react 10.55.0 regression: client SDK breaks React re-rendering in production builds (Mantine AppShell stuck) #21770
Description
Summary
Upgrading from @sentry/tanstackstart-react 10.54.0 → 10.55.0 causes a React component to stop re-rendering in response to state changes — but only in a production (minified) build. The dev server and a --mode development build are both unaffected. Bisected to the 10.55.0 release.
In our app it manifests on a Mantine AppShell: the mobile navbar (navbar.collapsed.mobile, driven by a useDisclosure/useState toggle in the header) stops updating. Clicking the hamburger flips the <Burger> to its open icon — so the state did change and that component re-rendered — but the AppShell's collapse <style> (which is derived from the same mobileOpened state via collapsed={{ mobile: !mobileOpened }}) never updates, so the navbar stays at transform: translateX(-100%) and the sidebar never slides in. Effectively the AppShell subtree stops reconciling on a state change that a sibling in the same parent component reacts to correctly.
SDK / environment
@sentry/tanstackstart-react(+ transitive@sentry/react,@sentry/browser,@sentry/core)- React 19.2.0
@tanstack/react-start1.139.x (Vite + Nitro)@mantine/core8.3.10babel-plugin-react-compileris enabled — but disabling it does not fix the bug.- Build:
vite build(production). Reproduces whether or notSentry.init()actually runs — it breaks even when the client SDK is only imported but not initialized (no DSN), which suggests module-level/build behavior rather than a runtime integration.
Version bisection (production builds, identical app code)
| @sentry/* version | Result |
|---|---|
| 10.27, 10.40, 10.50, 10.52, 10.54.0 | ✅ works |
| 10.55.0, 10.59.0, 10.60.0 | ❌ broken |
The regression was introduced in 10.55.0 (each version built with a clean dependency install).
Suspected cause
The 10.55.0 changelog includes feat(tanstackstart-react): Enable component tracking (#21149), which is the most likely candidate for a change that alters how React components are tracked/reconciled. (I have not confirmed the exact mechanism.) Other 10.55 tanstackstart-react changes touching the client/hydration path: #21144 (distributed tracing — connects server↔client traces through hydration) and #21161 (move init to client entry).
What I ruled out
- Not our
Sentry.init()config — reproduces even when the SDK is imported but never initialized (no DSN). - Not the
sentryTanstackStartVite plugin — removing it from the build still reproduces. - Not the React Compiler — disabling
babel-plugin-react-compilerstill reproduces. - Not a hydration mismatch — a benign React Why can't I catch an error directly after install() ? #418 is present on the working 10.54 build too, so it is not the trigger.
Expected vs. actual
- Expected: importing/using the Sentry SDK does not change React's reconciliation; components re-render on state changes in a production build exactly as they do in dev.
- Actual: with 10.55.0+, a Mantine
AppShellstops re-rendering on state changes in production builds, while a sibling component (theBurger) driven by the same state still updates.
Workaround
Pinning @sentry/* to 10.54.0 resolves it.
Reproduction
I don't yet have a trimmed-down standalone reproduction — the bisection was done against a large app. I'm happy to put together a minimal Vite + React 19 + Mantine AppShell + @sentry/tanstackstart-react repro if that would help narrow it down; just let me know. Given the SDK is in beta and the precise version bisection points at 10.55.0 (#21149), I wanted to file this early.
Metadata
Metadata
Assignees
Projects
- StatusShow more project fieldsWaiting for: Community
Activity
linear-code commentedon Jun 24, 2026
JS-2861
JPeer264 commentedon Jun 25, 2026
Hey thanks a lot for helping us to improve our TanstackStart SDK. I just tried to reproduce it and set up a minimal app with Mantine and its
AppShell, but couldn't reproduce it - the app always built successfully. However, it failed with a different error (even with a older version) when having our vite plugin with the combination of thenitro/viteplugin.Do you have any specific Vite plugins that might cause this? Could you disable the Sentry TanStack Start Vite plugin and try again (or at least set it to
sentryTanstackStart({ autoInstrumentMiddleware: false })? It was be really good if you have any leads or a minimal reproduction.getsantry commentedon Aug 6, 2026
This issue has gone three weeks without activity. In another week, I will close it.
But! If you comment or otherwise update it, I will reset the clock, and if you remove the label
Waiting for: Community, I will leave it alone ... forever!"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀
JPeer264 commentedon Aug 7, 2026
Friendly ping just in case @alex-zwingli
getsantry commentedon Aug 29, 2026
This issue has gone three weeks without activity. In another week, I will close it.
But! If you comment or otherwise update it, I will reset the clock, and if you remove the label
Waiting for: Community, I will leave it alone ... forever!"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀