Skip to content

reactRouterV6BrowserTracingIntegration perf issues with React 19.2 (development env only) #17888

Closed

Description

@billyvg

Description

We recently upgraded Sentry to React 19.2 and it's been freezing up when developing locally. Production works fine.

See this slack thread for more context, but removing reactRouterV6BrowserTracingIntegration fixes the perf issue.

For now we've disabled the integration in non-production environments.

Activity

  1. linear commented on Oct 8, 2025

    @linear
  2. billyvg commented on Oct 9, 2025

    @billyvg
    MemberAuthor

    To repro, in the sentry repo:

    • revert this commit: git revert 286062e88765cec92c321e60afc161a97007c1ee
    • run pnpm dev-ui'
    • Go to the /replays/ page and click around, you'll notice that it's incredibly slow
  3. self-assigned this
    on Oct 10, 2025
  4. Lms24 commented on Oct 10, 2025

    @Lms24
    Member

    After reproducing this, it appears to be caused by the SDK backfilling measure spans from React 19.2 now emitting custom tracks for component rendering time: https://react.dev/blog/2025/10/01/react-19-2#performance-tracks

    These are created via performance.measure() calls, which our SDK extracts and creates spans from when ending the idle span. This is pretty apparent when setting debug: true and observing thousands of these logs:

    Sentry Logger [log]: [Tracing] Finishing "measure" span "​Link" with ID 943626a659c8694f
    debug-logger.js:92 Sentry Logger [log]: [Tracing] Starting sampled span
      op: measure
      name: ​_c
      ID: 9ecdeabe9ead2784
      parent ID: 8601431d961d9cce
      root ID: 8601431d961d9cce
      root op: pageload
      root description: /issues/
    debug-logger.js:92 Sentry Logger [log]: [Tracing] Finishing "measure" span "​_c" with ID 9ecdeabe9ead2784
    debug-logger.js:92 Sentry Logger [log]: [Tracing] Starting sampled span
      op: measure
      name: ​Wrapper
      ID: bc3930cdd80a40a2
      parent ID: 8601431d961d9cce
      root ID: 8601431d961d9cce
      root op: pageload
      root description: /issues/
    
    ...
    

    We'll need to find a way to exclude these measure spans by default. This generates so many spans that the transaction gets dropped by Relay due to it exceeding the 1000 span limit. Gonna try to come up with a fix today.

  5. github-actions commented on Oct 15, 2025

    @github-actions
    Contributor

    A PR closing this issue has just been released 🚀

    This issue was referenced by PR #17905, which was included in the 10.20.0 release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions