Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 0 additions & 23 deletions docs/platforms/apple/common/features/experimental-features.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,29 +48,6 @@ This provides more comprehensive and consistent exception handling across your a

**Note:** The mechanism of hooking into `__cxa_throw` could cause issues with symbolication on iOS due to caching of symbol references.

### Session Replay in Unreliable Environments

Enable the `enableSessionReplayInUnreliableEnvironment` option to force enabling of session replay in unreliable environments.

```swift
options.experimental.enableSessionReplayInUnreliableEnvironment = true
```

```objc {tabTitle:Objective-C}
options.experimental.enableSessionReplayInUnreliableEnvironment = YES;
```

Due to internal changes with the release of Liquid Glass on iOS 26.0, the masking of text and images cannot be reliably guaranteed. Therefore the SDK uses a defensive programming approach to disable the session replay integration by default, unless the environment is detected as reliable.

Indicators for reliable environments include:
- Running on an older version of iOS that doesn't have Liquid Glass (iOS 18 or earlier)
- `UIDesignRequiresCompatibility` is explicitly set to `YES` in Info.plist
- The app was built with Xcode < 26.0 (DTXcode < 2600)

**Important:** This flag allows you to re-enable the session replay integration on iOS 26.0 and later, but please be aware that text and images may not be masked as expected.

Learn more in the <PlatformLink to="/session-replay/">Session Replay</PlatformLink> documentation.

## Metrics

Use <PlatformLink to="/metrics/">Metrics</PlatformLink> to send counters, gauges, and distributions from your application to Sentry. Once in Sentry, these metrics can be viewed alongside related errors, traces, and logs, and searched using their individual attributes.
Expand Down
23 changes: 0 additions & 23 deletions docs/platforms/apple/common/session-replay/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,29 +21,6 @@ Before enabling Session Replay in production, verify your masking configuration

</Alert>

<Alert level="warning" title="iOS 26.0+ - Liquid Glass">

<strong>Session Replay is disabled by default on iOS 26.0+ with Xcode 26.0+ to prevent potential PII leaks</strong>

Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0, Session Replay is now <strong>automatically disabled</strong> on apps running iOS 26.0+ when built with Xcode 26.0 or later starting with Sentry Cocoa <strong>8.57.0</strong>. This is a defensive measure to protect user privacy and prevent potential PII leaks until masking is reliably supported. Earlier SDK versions do not include this safeguard and may be affected by unreliable masking on iOS 26.0 when built with Xcode 26.0 (Liquid Glass). We recommend upgrading to 8.57.0+ or, if you can't upgrade the SDK, disabling Session Replay manually.

Session Replay will work normally if:

- Your app runs on iOS versions prior to 26.0, OR
- Your app is built with Xcode prior to 26.0, OR
- Your app explicitly sets <code>UIDesignRequiresCompatibility</code> to <code>YES</code> in <code>Info.plist</code>

<strong>Override (use with caution):</strong> If you understand the PII risks and want to enable session replay anyway, you can set:

```swift
options.experimental.enableSessionReplayInUnreliableEnvironment = true
```

This experimental override option will be removed in a future minor version once the masking issues are resolved.

Follow the progress on fixing masking for iOS 26.0 (Liquid Glass) in <a href="https://github.com/getsentry/sentry-cocoa/issues/6390">GitHub issue #6390</a>.

</Alert>

[Session Replay](/product/explore/session-replay/) helps you get to the root cause of an error or latency issue faster by providing you with a reproduction of what was happening in the user's device before, during, and after the issue. You can rewind and replay your application's state and see key user interactions, like taps, swipes, network requests, and console entries, in a single UI.

Expand Down
20 changes: 3 additions & 17 deletions docs/platforms/apple/common/session-replay/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,11 @@ notSupported:

<PlatformSection notSupported={["apple", "apple.macos", "apple.tvos", "apple.watchos", "apple.visionos"]}>

<Expandable title="Why is Session Replay not running on iOS 26.0?" permalink>
<Expandable title="Why was Session Replay not running on iOS 26.0?" permalink>

Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0, Session Replay is now <strong>automatically disabled</strong> on apps running iOS 26.0+ when built with Xcode 26.0 or later starting with Sentry Cocoa <strong>8.57.0</strong>. This is a defensive measure to protect user privacy and prevent potential PII leaks until masking is reliably supported. Earlier SDK versions do not include this safeguard and may be affected by unreliable masking on iOS 26.0 when built with Xcode 26.0 (Liquid Glass). We recommend upgrading to 8.57.0+ or, if you can't upgrade the SDK, disabling Session Replay manually.
Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0, Session Replay was <strong>automatically disabled</strong> on apps running iOS 26.0+ when built with Xcode 26.0 or later in Sentry Cocoa versions 8.57.0–9.10.x. This was a defensive measure to protect user privacy and prevent potential PII leaks.

Session Replay will work normally if:

- Your app runs on iOS versions prior to 26.0, OR
- Your app is built with Xcode prior to 26.0, OR
- Your app explicitly sets <code>UIDesignRequiresCompatibility</code> to <code>YES</code> in <code>Info.plist</code>

If you understand the PII risks and want to enable Session Replay anyway, you can override this behavior:

```swift
options.experimental.enableSessionReplayInUnreliableEnvironment = true
```

This experimental override option will be removed in a future minor version once the masking issues are resolved.

You can follow the ongoing work to fix masking for iOS 26.0 (Liquid Glass) in <a href="https://github.com/getsentry/sentry-cocoa/issues/6390">GitHub issue #6390</a>.
This issue has been resolved in Sentry Cocoa <strong>9.11.0</strong>. Session Replay now works normally on iOS 26.0+ with Xcode 26.0+. Upgrade to 9.11.0 or later to enable Session Replay on iOS 26.0+.

</Expandable>

Expand Down
6 changes: 0 additions & 6 deletions docs/platforms/apple/guides/ios/features/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,6 @@ iOS supports all <PlatformLink to="/tracing/instrumentation">performance monitor
- Requires SDK version 8.31.1 or later
- Requires enabling the `enableSessionReplay` option

<Alert level="warning">

Session Replay is automatically disabled on iOS 26.0+ when built with Xcode 26.0+ to prevent potential PII leaks due to Apple's Liquid Glass rendering changes. See the <PlatformLink to="/session-replay/troubleshooting">Session Replay troubleshooting guide</PlatformLink> for details.

</Alert>

## User Feedback UI

<PlatformLink to="/user-feedback">User Feedback</PlatformLink> provides a built-in UI to collect user information when an error occurs. You must call the User Feedback API to display the UI.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,16 +233,3 @@ Enables faster view rendering at the cost of some visual fidelity. Disabled by d

</SdkOption>

<SdkOption name="Native.ExperimentalOptions.SessionReplay.EnableSessionReplayInUnreliableEnvironment" type="bool" defaultValue="false">

Due to potential masking issues, session replay is disabled on iOS 26+ with Liquid Glass. If you [understand these issues](/platforms/apple/guides/ios/session-replay/troubleshooting/#why-is-session-replay-not-running-on-ios-260) and want to force Session Replay to be enabled anyway, you can use this setting to enable it.

<Alert level="warning">

Enabling this option on iOS 26+ may result in PII (text and images) not being masked as expected.

</Alert>

See [sentry-cocoa#6389](https://github.com/getsentry/sentry-cocoa/issues/6389) for details.

</SdkOption>
8 changes: 0 additions & 8 deletions docs/platforms/react-native/session-replay/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,6 @@ description: "Learn how to enable Session Replay in your mobile app."

By default, our Session Replay SDK masks all text content, images, and user input, giving you heightened confidence that no sensitive data will leave the device. To learn more, see [product docs](/product/explore/session-replay/).

<Alert level="warning">

<strong>Potential masking issues introduced when using Apple's Liquid Glass rendering in iOS 26.0</strong>

Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0 we recommend that you thoroughly test your application before enabling Session Replay on iOS 26+ to prevent potential PII leaks. [Please refer to our iOS documentation for more details on the issue](/platforms/apple/guides/ios/session-replay/) and follow the progress on fixing masking for iOS 26.0 (Liquid Glass) in <a href="https://github.com/getsentry/sentry-cocoa/issues/6390">GitHub issue #6390</a>

</Alert>

## Pre-requisites

Make sure your Sentry React Native SDK version is at least 6.5.0.
Expand Down
4 changes: 0 additions & 4 deletions docs/platforms/react-native/session-replay/privacy/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ The masking options below only apply when using the default `PixelCopy` strategy

Before enabling Session Replay in production, verify your masking configuration to ensure no sensitive data is captured. Our default settings aggressively mask potentially sensitive data, but if you modify these settings or update UI frameworks or system SDKs, you must thoroughly test your application. If you find any masking issues or sensitive data that should be masked but isn't, please [create a GitHub issue](https://github.com/getsentry/sentry-react-native/issues/new/choose) and avoid deploying to production with Session Replay enabled until the issue is resolved.

<strong>Potential masking issues introduced when using Apple's Liquid Glass rendering in iOS 26.0</strong>

Due to potential masking issues introduced by Apple's Liquid Glass rendering changes in iOS 26.0 we recommend that you thoroughly test your application before enabling Session Replay on iOS 26+ to prevent potential PII leaks. [Please refer to our iOS documentation for more details on the issue](/platforms/apple/guides/ios/session-replay/) and follow the progress on fixing masking for iOS 26.0 (Liquid Glass) in <a href="https://github.com/getsentry/sentry-cocoa/issues/6390">GitHub issue #6390</a>

</Alert>

The Session Replay SDK masks all text content, images, webviews, and user input by default. This helps ensure that no sensitive data is exposed. You can also manually choose which parts of your app to mask by using the options listed below.
Expand Down
Loading