---
title: "Screenshots"
description: "Learn more about taking screenshots when an error occurs. Sentry pairs the screenshot with the original event, giving you additional insight into issues."
url: https://docs.sentry.io/platforms/react-native/enriching-events/screenshots/
---

# Screenshots | Sentry for React Native

Sentry makes it possible to automatically take a screenshot and include it as an [attachment](https://docs.sentry.io/platforms/react-native/enriching-events/attachments.md) when a user experiences an error, an exception or a crash.

This feature is only available for SDKs with a user interface, like the ones for mobile and desktop applications. It's also limited by whether taking a screenshot is possible or not. For example, in some environments, like native iOS, taking a screenshot requires the UI thread, which often isn't available in the event of a crash. Another example where a screenshot might not be available is when the event happens before the screen starts to load. So inherently, this feature is a best effort solution.

## [Enabling Screenshots](https://docs.sentry.io/platforms/react-native/enriching-events/screenshots.md#enabling-screenshots)

Because screenshots may contain [PII](https://docs.sentry.io/platforms/react-native/data-management/sensitive-data.md), they are an opt-in feature. You can enable screenshots as shown below:

```javascript
import * as Sentry from "@sentry/react-native";

Sentry.init({
  dsn: "___PUBLIC_DSN___",
  attachScreenshot: true,
});
```

### [Screenshot Masking](https://docs.sentry.io/platforms/react-native/enriching-events/screenshots.md#screenshot-masking)

You can configure masking to automatically redact sensitive content like text and images from error screenshots. Masking is enabled by default.

```javascript
Sentry.init({
  dsn: "___PUBLIC_DSN___",
  attachScreenshot: true,
  screenshot: {
    maskAllText: true, // default: true
    maskAllImages: true, // default: true
  },
});
```

You can also mask or unmask specific native view classes. This is useful for views from third-party native libraries (for example, map views or payment forms):

```javascript
Sentry.init({
  dsn: "___PUBLIC_DSN___",
  attachScreenshot: true,
  screenshot: {
    maskedViewClasses: ["MKMapView"], // iOS class name
    unmaskedViewClasses: ["MyCustomSafeView"],
  },
});
```

When `attachScreenshot` is enabled and an error event is captured, the screenshots are transferred from native SDKs to React Native over the bridge. This can negatively impact performance on lower-end devices, however, React Native New Architecture will improve the performance of the transfer, as the data are not serialized.

## [Viewing Screenshots](https://docs.sentry.io/platforms/react-native/enriching-events/screenshots.md#viewing-screenshots)

If one is available, you'll see a thumbnail of the screenshot when you click on a specific issue from the [**Issues**](https://demo.sentry.io/issues/) page.

Once you've clicked on the event ID of a specific issue, you'll be able to see an overview of all the attachments as well as associated events in the "Attachments" tab.
