Skip to content

Releases: getsentry/sentry-react-native

8.17.1

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 03 Jul 10:55

Fixes

  • Force 16 KB ELF alignment for libsentry-tm-perf-logger.so so it does not break 16 KB page size compatibility on Android 15+ (#6396)

8.17.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 02 Jul 14:02

Warning

⚠️ Known Issue (Android): Apps built with the New Architecture on sentry-react-native 8.17.0 bundle a native library (libsentry-tm-perf-logger.so) that is not 16 KB page aligned, which breaks 16 KB page size compatibility on Android 15+ (and fails Google Play's 16 KB requirement). See #6394.
Please use 8.17.1.

Features

  • Add experimental enableStandaloneAppStartTracing to send app start as a standalone app.start transaction (#6359)

  • Set app.vitals.start.screen on the standalone app.start transaction from the current route (#6369)

  • Expose top-level Sentry.setAttribute and Sentry.setAttributes APIs (#6354).

  • Add enableTurboModuleTracking opt-in experimental option to enable Turbo Module performance tracking in the New Architecture (#6307)

  • Use the runtime's native btoa for envelope base64 encoding when available, to improve captureEnvelope performance. Falls back to the bundled JS encoder if btoa is missing (#6351).

  • Opt-in build-time auto-wrap for Expo Router's per-route ErrorBoundary (#6347)

    Enable autoWrapExpoRouterErrorBoundary: true in getSentryExpoConfig (or withSentryConfig) and the Sentry Babel plugin rewrites export { ErrorBoundary } from 'expo-router' into a wrapExpoRouterErrorBoundary call at build time — no route-file edits needed:

    // metro.config.js
    module.exports = getSentryExpoConfig(__dirname, {
      autoWrapExpoRouterErrorBoundary: true,
    });

Changes

  • Default mobileReplayIntegration({ networkCaptureBodies }) to true, matching the iOS and Android native SDK defaults (#6372)

Fixes

  • Forward Session Replay network detail options to the native SDKs so network request and response bodies are displayed (#6373)
  • The Sentry Babel transformer no longer injects @sentry/babel-plugin-component-annotate unless annotateReactComponents is explicitly enabled (#6347)

Dependencies

8.16.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 25 Jun 12:37

Features

  • Capture errors that hit Expo Router's per-route ErrorBoundary (#6318)

    Wrap the boundary with Sentry.wrapExpoRouterErrorBoundary in your route file:

    // app/_layout.tsx
    import { ErrorBoundary as ExpoErrorBoundary } from 'expo-router';
    import * as Sentry from '@sentry/react-native';
    
    export const ErrorBoundary = Sentry.wrapExpoRouterErrorBoundary(ExpoErrorBoundary);

    Render-phase errors that reach the boundary are captured with route context (route.name, route.path, route.params), the in-flight navigation transaction is tagged as errored, and a breadcrumb is emitted. Concrete paths and params are gated behind sendDefaultPii.

Fixes

  • Fix fatal NSInvalidArgumentException crash in RNSentryReplayBreadcrumbConverter when a touch breadcrumb path contains a non-dictionary element (#6346)
  • Apply SENTRY_ENVIRONMENT, SENTRY_RELEASE and SENTRY_DIST build-time overrides to the JS bundled options to match the native SDKs (#6330)
  • Fix user geo being dropped from the native scope by forwarding it as a structured object instead of a JSON string (#6309)
  • Remove unused React/RCTTextView.h import that broke iOS builds on React Native 0.87, where the header was removed as part of the legacy architecture cleanup (#6322)

Internal

  • Hide the dataCollection option until it is fully supported in React Native. It is exposed by @sentry/core but is not yet honored by the native SDKs (iOS/Android) nor by the RN-specific sendDefaultPii gates, so setting it would silently have no effect. Use sendDefaultPii instead. (#6345)

Dependencies

8.14.1

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 24 Jun 15:17

Fixes

  • Fix Android Gradle source map upload being silently skipped on some occasions (#6320)

Dependencies

8.15.1

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 19 Jun 08:40

Fixes

  • Fix Android Gradle source map upload being silently skipped on some occasions (#6320)

8.15.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 18 Jun 12:48

Features

  • Add nativeStackAndroid support to NativeLinkedErrors, capturing the JVM stack trace of rejected native module promises as a linked exception (#6278)
  • Record XHR request/response headers and (optionally) bodies in Mobile Session Replay. Opt in via mobileReplayIntegration with networkDetailAllowUrls to capture headers; set networkCaptureBodies: true to also capture bodies. Other options: networkDetailDenyUrls, networkRequestHeaders, networkResponseHeaders. Authorization-like headers are always stripped, bodies are capped at ~150 KB. Covers XHR-based clients like axios; fetch will follow. See Network Details for details. (#6288)
  • Warn during dev builds when multiple versions of Sentry JS SDK are detected (#6269)

Fixes

  • Fix Android ClassCastException when syncing breadcrumbs with a numeric timestamp to the native scope (#6308)

Dependencies

8.14.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 11 Jun 11:28

Features

  • Correlate deep links with the navigation transaction they trigger. The next idle navigation span started within routeChangeTimeoutMs of a deep link arrival is tagged with navigation.trigger: 'deeplink', deeplink.url (sanitized, respects sendDefaultPii), and deeplink.dispatch_delay_ms (ms gap between URL received and navigation dispatched). Covers both cold start (Linking.getInitialURL()) and warm open ('url' event) paths, including the late-arrival case where Expo Router auto-handles the link before our getInitialURL() chain resolves (#6264)
  • Add memory, CPU, and frame measurements to Android profiling (#6250)
  • Add enableAutoConsoleLogs option to opt out of automatic console.* capture while keeping enableLogs: true for manual Sentry.logger.* calls (#6235)
  • Instrument Expo Router push, replace, navigate, back, and dismiss (in addition to prefetch) with breadcrumbs and spans, and tag the resulting idle navigation span with the initiating navigation.method (#6221)
    • Note: Expo Router span/breadcrumb attributes that may contain user identifiers (route.href, route.params, and concrete pathnames derived from string hrefs such as /users/42) are now gated behind sendDefaultPii. When sendDefaultPii is off (the default), prefetch spans for string hrefs use route.name: 'unknown' and omit route.href. Templated object hrefs (e.g. { pathname: '/users/[id]' }) are unaffected.
  • Warn when Gradle resolves sentry-android to a version incompatible with the SDK (#6238)
  • Attach the active TurboModule method to native crash reports as contexts.turbo_module + turbo_module.name / turbo_module.method tags (#6227)

Fixes

  • Exclude additional server-only modules (express, postgresjs, requestdata, consola, spanStreaming) from native bundles (#6263)
  • Enable fetch instrumentation when Expo SDK 56's native expo/fetch is active (#6226)
  • Resolve sentry-cli in isolated dependency layouts (#6242)

Internal

  • Convert sentry.gradle to Kotlin DSL (sentry.gradle.kts) (#6119)
    • The old sentry.gradle is kept as a shim forwarding to the new .kts file for backward compatibility

Dependencies

8.13.0 (Stable)

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 28 May 14:23
153fed1

Features

  • Add breadcrumbs for dispatched React Navigation events (#6218)
  • Add Sentry.NavigationContainer drop-in wrapper for React Navigation (#6199)
  • Opt-in: consume sentry-cocoa via Swift Package Manager. Set SENTRY_USE_SPM=1 before pod install to pull Sentry from sentry-cocoa's SPM package as a binary xcframework instead of the CocoaPods source build (#6182)
  • Add disableAutoUpload option to Expo plugin to disable source map and debug symbol uploads (#6195)
  • Expose pauseAppHangTracking and resumeAppHangTracking APIs on iOS (#6192)
  • Better route and dynamic param extraction for Expo Router (#6197)

Fixes

  • Rethrow native exceptions from Sentry's Expo host handler so Android crashes terminate the process instead of leaving the app on a blank screen (#6228)
  • Bound TTID/TTFD to prevent inflated transactions (#6210)
  • Return NO from requiresMainQueueSetup to avoid unnecessary dispatch_sync on the main queue during bridge init (#6202)

Dependencies

8.12.0

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 21 May 09:32

Features

  • Multi-instance <TimeToInitialDisplay> / <TimeToFullDisplay> coordination (#6090)
    • New ready prop. When a screen has multiple async data sources, mount one <TimeToFullDisplay ready={...} /> per source — TTID/TTFD is recorded only when every instance reports ready === true.
    • The existing record prop is unchanged BUT it is now deprecated in favor of ready.
  • Extract text content from children of touched components as a label fallback for touch breadcrumbs (#6106)
  • Auto-inject sentry-label from static text content at build time when annotateReactComponents is enabled (#6141)
  • Respect Replay Mask boundaries when reading sentry-label for touch breadcrumbs (#6142)
  • Add textComponentNames option to annotateReactComponents for custom text components (#6169)
  • Add first-class expoRouterIntegration() with auto-registration (#6189)
  • Expose addConsoleInstrumentationFilter from @sentry/core (#6180)
  • Expose experimental captureSurfaceViews option for Android Session Replay (#6175)
  • Add OTA SDK version to native sdk.packages when JS bundle version differs from built-in version (#6191)

Fixes

  • Deduplicate native HTTP breadcrumbs that duplicate JS XHR/fetch breadcrumbs (#6132)
  • Fix duplicate JS error reporting on iOS New Architecture when the native SDK is initialized early via sentry.options.json ("Capture App Start Errors"). It's done by applying the ExceptionsManager.reportException C++ wrapper filter in both init paths (#6145)
  • Fix boolean options from sentry.options.json being ignored on Android when using RNSentrySDK.init (#6130)
  • Fix includeWebFeedback: false Metro config option causing crash at startup (#6150)
  • Fix sentry-expo-upload-sourcemaps failing for projects with devEngines.packageManager set to non-npm managers (#6155)
  • Fix Metro serializer wrapper breaking getModulesRunBeforeMainModule for third-party plugins like react-native-worklets bundleMode (#6188)

Dependencies

8.11.1 (Stable)

Choose a tag to compare

@sentry-release-bot sentry-release-bot released this 11 May 14:46

Fixes

  • Fix iOS crash with AVAssetDownloadTask in urlSessionTask:setState: (#6133)

Dependencies