Features
-
Add JavaScript (Hermes) samples to UI profiles on Android 15 and newer (#6966)
- When
_experiments.profilingOptionsis set, the SDK sends the Hermes samples as profile chunks of the native profiler session, so the profile of a transaction shows its JavaScript functions.
- When
-
Report JS thread hangs as errors on iOS with the experimental
enableJsHangTrackingoption (#6964)- App Hang tracking watches only the UI thread, so an infinite loop in JS sent no event. The new tracker sends an error event when the JS thread stays blocked for longer than
jsHangTimeoutInterval(2 seconds by default). - With Hermes, the event contains the JS stack trace and the bundle Debug ID for source map symbolication.
- The tracker does not run in development builds, where a paused JS debugger would look like a hang.
Sentry.init({ dsn: '__DSN__', enableJsHangTracking: true, });
- App Hang tracking watches only the UI thread, so an infinite loop in JS sent no event. The new tracker sends an error event when the JS thread stays blocked for longer than
-
Add
longTaskIntegrationto report JS thread long tasks as thereact_native.long_task.durationmetric, also outside of transactions (#6986)- It requires React Native 0.82 or newer on the New Architecture. Set
minDurationMs(default200) andsampleRate(default1) to control what it reports.
- It requires React Native 0.82 or newer on the New Architecture. Set
Fixes
- Detect
expo/fetchin Expo Router apps on@expo/metro-runtimeversions that hide it, so fetch tracing and fetch breadcrumbs are enabled by default (#6965) - Enable native logs on Android when
enableLogsis set (#6967) - Honor
<Sentry.Mask>in iOS error screenshots (#6974)