You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
iOS: JS error screenshots ignore <Sentry.Mask> when screenshot.maskAllText is false #6970
Are you using any other error monitoring solution alongside Sentry?
No
Other Error Monitoring Solution Name
No response
@sentry/react-native SDK Version
8.33.0
How does your development environment look like?
Expo SDK 53.0.27, react-native 0.79.6, Hermes, New Architecture on
sentry-cocoa 9.32.0 (bundled by @sentry/react-native 8.33.0)
EAS development build; device: iPhone 15 Pro Max (iPhone16,2), iOS 27.0.1
Compared against: Motorola moto g power 5G (2024), Android 15, same build
Sentry.init()
Sentry.init({dsn: '…',attachScreenshot: true,screenshot: {maskAllText: false},integrations: (integrations)=>[
...integrations,Sentry.mobileReplayIntegration({maskAllText: false,maskAllImages: false,maskAllVectors: false}),],// other options unrelated to screenshots omitted});
Steps to Reproduce
Set attachScreenshot: true and screenshot: { maskAllText: false } in Sentry.init.
Render a screen where some <Text> is wrapped in <Sentry.Mask> and some is not.
Cold-start the app, so the native SDK picks up the options.
From JS, call Sentry.captureException(new Error('test')).
Open the event in Sentry → Attachments → screenshot.png.
Expected Result
Text inside <Sentry.Mask> is masked in the error screenshot; other text is readable. This is what Android does since 8.33.0 (#6930: "Honors <Sentry.Mask> / <Sentry.Unmask> in screenshots").
Actual Result
On iOS, all text in the error screenshot is readable, including the text inside <Sentry.Mask>. On Android, the same build and screen mask the wrapped text and show the rest.
With maskAllText left at its default (true), iOS masks all text as expected, so the gap is only in honoring <Sentry.Mask> / <Sentry.Unmask>.
From reading the 8.33.0 source, RNSentryReplay.mm registers RNSentryReplayMask as the redact container class for Session Replay; the error screenshot path (RNSentry.mmcaptureScreenshot → RNSentryInternalWrapper captureScreenshots) doesn't appear to use it.
Activity
linear-code commentedon Oct 29, 2026
RN-842