Skip to content

Releases: getsentry/sentry-react-native

8.13.0

28 May 14:23
153fed1

Choose a tag to compare

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

21 May 09:32

Choose a tag to compare

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

11 May 14:46

Choose a tag to compare

Fixes

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

Dependencies

8.11.0

07 May 12:04

Choose a tag to compare

Warning

⚠️ Known Issue (iOS): Apps using sentry-react-native 8.10.0+ may crash when using AVAssetDownloadURLSession due to an issue in the sentry-cocoa SDK. Please use 8.11.1.

Features

  • Use accessibilityLabel, aria-label, and testID as fallback labels for touch breadcrumbs when sentry-label is not set (#6103)

Fixes

  • Fix the issue with uploading iOS Debug Symbols in EAS Build when using pnpm (#6076)
  • Improve frame delay collection performance by using sentry-java getFramesDelay API (#6074)

Dependencies

8.10.0

30 Apr 11:23

Choose a tag to compare

Warning

⚠️ Known Issue (iOS): Apps using sentry-react-native 8.10.0+ may crash when using AVAssetDownloadURLSession due to an issue in the sentry-cocoa SDK. Please use 8.11.1.

Features

  • Support SENTRY_RELEASE and SENTRY_DIST env vars in build scripts to override values in sentry.options.json at build time (#6070)
  • Add includeWebFeedback Metro config option to exclude @sentry-internal/feedback from the bundle (#6025)
  • Add rage tap detection — rapid consecutive taps on the same element emit ui.multiClick breadcrumbs and appear on the replay timeline with the rage click icon (#5992)

Fixes

  • Android build failure in expo-handler when Android SDK 31 is not installed by using safeExtGet for compileSdkVersion and minSdkVersion (#6061)
  • Stop the Hermes sampling profiler on React instance teardown to prevent pthread_kill SIGABRT when the JS thread is torn down with profiling active (#6035)
  • Restrict the URI scope of getDataFromUri on iOS and Android (#6045)
  • Restrict the Metro source-context middleware to files within the project root (#6044)
  • Escape name and version values when injecting release constants into the web bundle (#6044)
  • Mask the Sentry auth token in the sentry.gradle upload-task lifecycle log (#6057)
  • Discard invalid navigation/interaction transactions via an event processor instead of mutating the internal _sampled flag, removing misleading "dropped due to sampling" debug logs (#6051)

Dependencies

8.9.2

27 Apr 10:55

Choose a tag to compare

Fixes

  • Restore executable bit on shell scripts in the published tarball, fixing Permission denied on iOS build (#6049)
  • Restore EAS build hook bin scripts (sentry-eas-build-on-{success,error,complete}) missing from the published tarball (#6049)

8.9.1

23 Apr 15:56

Choose a tag to compare

Features

  • Add new @sentry/expo-upload-sourcemaps package for uploading JavaScript bundles and source maps from Expo builds to Sentry (#6027)
    • The existing sentry-expo-upload-sourcemaps bin bundled with @sentry/react-native is superseded by the new package; it continues to work unchanged for now
  • Expose scope-level attributes API (setAttribute, setAttributes, removeAttribute) bridging to native SDKs (#6009)
  • Expose screenshot masking options (screenshot.maskAllText, screenshot.maskAllImages, screenshot.maskedViewClasses, screenshot.unmaskedViewClasses) for error screenshots (#6007)
  • Warn Expo users at Metro startup when prebuilt native projects are missing Sentry configuration (#5984)
  • Re-export AI SDK manual instrumentation helpers (instrumentOpenAiClient, instrumentAnthropicAiClient, instrumentGoogleGenAIClient, createLangChainCallbackHandler, instrumentLangGraph, instrumentStateGraphCompile) for use in React Native apps (#6028)
  • Add Sentry.GlobalErrorBoundary component (and withGlobalErrorBoundary HOC) that renders a fallback UI for fatal non-rendering JS errors routed through ErrorUtils in addition to the render-phase errors caught by Sentry.ErrorBoundary. Opt-in flags includeNonFatalGlobalErrors and includeUnhandledRejections extend the fallback to non-fatal errors and unhandled promise rejections respectively. (#6023)

Fixes

  • Fix @sentry/expo-upload-sourcemaps publishing issue (#6037)
  • Fix iOS UI profiling options being silently ignored (#6012)
  • Fix _experiments.enableUnhandledCPPExceptionsV2 being silently ignored on iOS (#6014)
  • Check captureReplay return value in iOS bridge to avoid linking error events to uncaptured replays (#6008)
  • Report the expected properties file path and any missing keys when using flavorAware on Android, instead of failing with an opaque Illegal null value provided in this collection error (#6031)

Dependencies

8.9.0

23 Apr 12:15

Choose a tag to compare

8.9.0 Pre-release
Pre-release

Warning

This release has a broken workspace-protocol dependency and cannot be installed; use 8.9.1

Features

  • Add new @sentry/expo-upload-sourcemaps package for uploading JavaScript bundles and source maps from Expo builds to Sentry (#6027)
    • The existing sentry-expo-upload-sourcemaps bin bundled with @sentry/react-native is superseded by the new package; it continues to work unchanged for now
  • Expose scope-level attributes API (setAttribute, setAttributes, removeAttribute) bridging to native SDKs (#6009)
  • Expose screenshot masking options (screenshot.maskAllText, screenshot.maskAllImages, screenshot.maskedViewClasses, screenshot.unmaskedViewClasses) for error screenshots (#6007)
  • Warn Expo users at Metro startup when prebuilt native projects are missing Sentry configuration (#5984)
  • Re-export AI SDK manual instrumentation helpers (instrumentOpenAiClient, instrumentAnthropicAiClient, instrumentGoogleGenAIClient, createLangChainCallbackHandler, instrumentLangGraph, instrumentStateGraphCompile) for use in React Native apps (#6028)
  • Add Sentry.GlobalErrorBoundary component (and withGlobalErrorBoundary HOC) that renders a fallback UI for fatal non-rendering JS errors routed through ErrorUtils in addition to the render-phase errors caught by Sentry.ErrorBoundary. Opt-in flags includeNonFatalGlobalErrors and includeUnhandledRejections extend the fallback to non-fatal errors and unhandled promise rejections respectively. (#6023)

Fixes

  • Fix iOS UI profiling options being silently ignored (#6012)
  • Fix _experiments.enableUnhandledCPPExceptionsV2 being silently ignored on iOS (#6014)
  • Check captureReplay return value in iOS bridge to avoid linking error events to uncaptured replays (#6008)
  • Report the expected properties file path and any missing keys when using flavorAware on Android, instead of failing with an opaque Illegal null value provided in this collection error (#6031)

Dependencies

8.8.0

16 Apr 13:20

Choose a tag to compare

Features

  • Enable "Open Sentry" button in Playground for Expo apps (#5947)
  • Add attachAllThreads option to attach full stack traces for all threads to captured events on iOS (#5960)
  • Add strictTraceContinuation and orgId options for trace continuation validation (#5829)
  • Add deeplinkIntegration for automatic deep link breadcrumbs (#5983)
  • Name navigation spans using dispatched action payload when useDispatchedActionData is enabled (#5982)

Fixes

  • Fix sourcemap upload script failing when withSentry is used programmatically in app.config.ts (#6006)
  • Retry native module resolution to prevent silent event drops in production Hermes builds (#5981)
  • Lazy-load Metro internal modules to prevent Expo 55 import errors (#5958)
  • Fix app start transaction profile offset by using the actual profiling start timestamp instead of the adjusted app start time (#5962)
  • Use React componentStack as fallback when error has no stack trace on Android (#5965)
  • Add SENTRY_PROJECT_ROOT env var to override project root in Xcode build phase scripts for monorepo setups (#5961)

Dependencies

8.7.0 (Stable)

02 Apr 10:07

Choose a tag to compare

Features

  • Add Sentry.appLoaded() API to explicitly signal app start end (#5940)
  • Add frames.delay span data from native SDKs to app start, TTID/TTFD, and JS API spans (#5907)
  • Rename FeedbackWidget to FeedbackForm and showFeedbackWidget to showFeedbackForm (#5931)
    • The old names are deprecated but still work
  • Deprecate FeedbackButton, showFeedbackButton, and hideFeedbackButton (#5933)

Fixes

  • Fix inflated http.client span durations on iOS when the app backgrounds during a request (#5944)
  • Fix crash caused by nullish response in supabase PostgREST handler (#5938)
  • Fix iOS crash (EXC_BAD_ACCESS) in time-to-initial-display when navigating between screens (#5887)

Dependencies