Skip to content
Merged
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
2 changes: 1 addition & 1 deletion develop-docs/sdk/foundations/transport/authentication.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Sentry provides the following endpoints:

- [/envelope/](../envelopes/) for any submission using Envelopes.
- [`/minidump/`](https://docs.sentry.io/platforms/native/minidump/) for multipart requests containing Minidumps.
- [`/unreal/`](https://docs.sentry.io/platforms/unreal/configuration/setup-crashreporter/) for Unreal
- [`/unreal/`](https://docs.sentry.io/platforms/unreal/configuration/crash-reporter/crash-reporter-client/) for Unreal
Engine 4 crash reports.
- [`/playstation/`](https://docs.sentry.io/platforms/playstation/) for PlayStation crash reports.
<Alert title="Note" level="info">
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/unreal/configuration/app-hangs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ The engine's heartbeat monitor thread must be enabled for hang tracking to work.
HangDuration=25
```

`HangDuration` is the threshold (in seconds) after which the engine reports a hang to the [Crash Reporter Client](/platforms/unreal/configuration/setup-crashreporter/). The Sentry SDK's hang tracking coexists with the engine's mechanism — the SDK hooks into the heartbeat system independently and captures its own events based on the <PlatformLink to="/configuration/app-hangs/#hang-timeout">hang timeout</PlatformLink> you configure.
`HangDuration` is the threshold (in seconds) after which the engine reports a hang to the [Crash Reporter Client](/platforms/unreal/configuration/crash-reporter/crash-reporter-client/). The Sentry SDK's hang tracking coexists with the engine's mechanism — the SDK hooks into the heartbeat system independently and captures its own events based on the <PlatformLink to="/configuration/app-hangs/#hang-timeout">hang timeout</PlatformLink> you configure.

## Configuration

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Crash Reporter Client
description: Learn about Sentry's Unreal Engine integration with Crash Reporter Client.
sidebar_order: 2
description: Learn about Sentry's Unreal Engine integration with the Crash Reporter Client.
og_image: /og-images/platforms-unreal-configuration-setup-crashreporter.png
---

Expand All @@ -9,7 +10,7 @@ Unreal Engine application or game, because Sentry supports the _UE Crash Reporte

<Alert level="info">

Starting from SDK version 1.8.0, the Sentry plugin includes its own [Sentry Crash Reporter](#sentry-crash-reporter) - an alternative to the built-in UE Crash Reporter that works through the Sentry SDK pipeline and supports user feedback.
The Sentry Unreal plugin also ships with its own [Sentry Crash Reporter](../sentry-crash-reporter/) - a standalone alternative to the UE Crash Reporter that integrates directly with the Sentry SDK pipeline and supports user feedback. If you're choosing between the two, we recommend starting with the Sentry Crash Reporter.

</Alert>

Expand Down Expand Up @@ -177,116 +178,6 @@ add JSON support to the build script (`MyProject.build.cs`):
PublicDependencyModuleNames.AddRange(new string[] { ..., "Json" });
```

## Sentry Crash Reporter

<Alert>

Available starting from Sentry Unreal SDK version 1.8.0. Supported on Windows and Linux only.

</Alert>

Starting from version 1.8.0, the Sentry Unreal plugin ships with an optional **Sentry Crash Reporter** - a standalone application that can be used instead of the default UE Crash Reporter. When enabled, it displays a dialog to users after a crash, allowing them to review crash details and provide feedback before the report is submitted to Sentry.

Unlike the built-in UE Crash Reporter, the Sentry Crash Reporter works through the Sentry SDK pipeline and doesn't require modifying engine configuration files. This also means it requires Sentry's own crash capturing to be enabled (see "Enable automatic crash capturing (Windows, UE 5.2+)" in the plugin settings).

![Sentry Crash Reporter](./img/sentry-crash-reporter.png)

### Enabling the Sentry Crash Reporter

To enable it, navigate to **Project Settings > Plugins > Sentry > General > Native** and toggle **Enable external crash reporter**.

Alternatively, add the following to your project's configuration `.ini` file:

```ini
[/Script/Sentry.SentrySettings]
EnableExternalCrashReporter=True
```

### Customizing the Crash Reporter

You can customize the appearance of the Sentry Crash Reporter directly from the plugin settings. Navigate to **Project Settings > Plugins > Sentry > General > Native** and expand the **External crash reporter appearance** section. Each property has an override toggle - only properties you explicitly enable will be applied:

- **Window title** - Custom title for the crash reporter window.
- **Header text** - Header text shown in the crash reporter dialog.
- **Header description** - Description text shown below the header. Leave empty to hide.
- **Submit button label** - Label for the submit/send button.
- **Cancel button label** - Label for the cancel button. Set to empty string to hide the button.
- **Accent color** - Primary accent color used for the crash reporter UI elements.
- **Window closable** - When disabled, the user cannot close the crash reporter window without submitting the report. The native close button is disabled and the cancel button is hidden. Enabled by default.

These settings are applied each time the SDK initializes. Properties that are not overridden will use the crash reporter's built-in defaults.

#### Using a Custom Crash Reporter Build

For more advanced customization (such as custom logos or layout changes), you can fork the [sentry-desktop-crash-reporter](https://github.com/getsentry/sentry-desktop-crash-reporter) project and build a custom version.

To build on Windows:

```powershell
cd sentry-desktop-crash-reporter
dotnet publish -f net9.0-desktop -r win-x64 Sentry.CrashReporter/Sentry.CrashReporter.csproj -o build-output
```

For other platforms, replace the runtime identifier with `win-arm64`, `linux-x64`, or `linux-arm64`.

Copy the output executable into the plugin's ThirdParty binaries directory:

- **Windows**: `Plugins/sentry-unreal/Source/ThirdParty/Win64/bin/Sentry.CrashReporter.exe`
- **Linux**: `Plugins/sentry-unreal/Source/ThirdParty/Linux/bin/Sentry.CrashReporter`

After replacing the executable, delete the project's `Build` and `Intermediate` directories and rebuild to ensure the updated binary is picked up.

Refer to the project's [customization guide](https://github.com/getsentry/sentry-desktop-crash-reporter/blob/main/CUSTOMIZATION.md) for details on what can be changed.

### Stacktrace Display

The Sentry Crash Reporter can display a symbolicated stacktrace of the crashed thread, allowing users to review the call stack directly in the crash dialog before submitting the report.

This feature requires client-side stack walking, which is supported through two backend configurations:

- **[Native backend](/platforms/unreal/configuration/native-backend/)**: Performs stack walking and symbolication automatically using the platform's debug APIs. No additional configuration is needed.
- **Crashpad backend**: Requires a custom build of `sentry-native` with the `CRASHPAD_ENABLE_STACKTRACE` CMake flag enabled. See [below](#building-sentry-native-with-stacktrace-support) for instructions.

<Alert>

For **Shipping builds**, the stacktrace can only be symbolicated if debug information is available at runtime. Enable **Include Debug Files in Shipping Builds** in **Project Settings > Packaging** to ensure function names are resolved in the crash reporter dialog.

</Alert>

#### Building sentry-native With Stacktrace Support

To enable client-side stacktrace display when using the Crashpad backend, you need to rebuild `sentry-native` with the `CRASHPAD_ENABLE_STACKTRACE` CMake flag. The example below shows a Windows build — for other platforms, refer to the [sentry-native build documentation](https://github.com/getsentry/sentry-native#build-and-installation) and the [CI build scripts](https://github.com/getsentry/sentry-unreal/tree/main/scripts) in the sentry-unreal repository.

Clone [sentry-native](https://github.com/getsentry/sentry-native) and check out the version that matches your plugin (pinned under `modules/sentry-native` in the [sentry-unreal](https://github.com/getsentry/sentry-unreal) repository). Then build:

```powershell
cd D:\projects\sentry-native

cmake -G "Visual Studio 17 2022" -S . -B build `
-D SENTRY_BACKEND=crashpad `
-D SENTRY_SDK_NAME=sentry.native.unreal `
-D SENTRY_BUILD_SHARED_LIBS=OFF `
-D CRASHPAD_ENABLE_STACKTRACE=ON

cmake --build build --target sentry --config RelWithDebInfo --parallel
cmake --build build --target crashpad_handler --config RelWithDebInfo --parallel
cmake --install build --prefix install --config RelWithDebInfo
```

Copy the build output into your project's plugin directory:

- `install/lib/*` → `Plugins/sentry-unreal/Source/ThirdParty/Win64/Crashpad/lib/`
- `install/bin/crashpad_handler.exe` → `Plugins/sentry-unreal/Source/ThirdParty/Win64/Crashpad/bin/`
- `install/include/sentry.h` → `Plugins/sentry-unreal/Source/ThirdParty/Win64/Crashpad/include/`

After replacing binaries, delete your project's `Build` and `Intermediate` directories and rebuild.

<Alert>

The `CRASHPAD_ENABLE_STACKTRACE` feature is experimental. On Linux, it requires the `libunwind-ptrace` development package.

</Alert>

## Upload Debug Symbols

To allow Sentry to fully process native crashes and provide you with
Expand Down
11 changes: 11 additions & 0 deletions docs/platforms/unreal/configuration/crash-reporter/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: Crash Reporter
description: "Learn about the crash reporters supported by the Sentry Unreal SDK."
next_steps:
- sentry-crash-reporter
- crash-reporter-client
---

The Sentry Unreal plugin supports two crash reporter options — pick whichever fits your workflow.

<PageGrid />
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
---
title: Sentry Crash Reporter
sidebar_order: 1
description: Learn about the standalone Sentry Crash Reporter shipped with the Sentry Unreal plugin.
---

<Alert>

Available starting from Sentry Unreal SDK version 1.8.0. Supported on all desktop platforms — on macOS the [native crash backend](/platforms/unreal/configuration/native-backend/) must be enabled.

</Alert>

The Sentry Unreal plugin ships with an optional **Sentry Crash Reporter** — a standalone application that can be used instead of the default [Crash Reporter Client](../crash-reporter-client/). When enabled, it displays a dialog to users after a crash, allowing them to review crash details and provide feedback before the report is submitted to Sentry.

Unlike the built-in UE Crash Reporter, the Sentry Crash Reporter works through the Sentry SDK pipeline and doesn't require modifying engine configuration files. This also means it requires Sentry's own crash capturing to be enabled (see "Enable automatic crash capturing (Windows, UE 5.2+)" in the plugin settings).

![Sentry Crash Reporter](./img/sentry-crash-reporter.png)

## Enabling the Sentry Crash Reporter

To enable it, navigate to **Project Settings > Plugins > Sentry > Sentry Crash Reporter** and toggle **Enable Sentry Crash Reporter**.

Alternatively, add the following to your project's configuration `.ini` file:

```ini
[/Script/Sentry.SentrySettings]
EnableExternalCrashReporter=True
```

## Customizing the Crash Reporter

You can customize the appearance of the Sentry Crash Reporter directly from the plugin settings. Navigate to **Project Settings > Plugins > Sentry > Sentry Crash Reporter** and expand the **Sentry Crash Reporter appearance** section. Each property has an override toggle — only properties you explicitly enable will be applied:

- **Window title** - Custom title for the crash reporter window.
- **Header text** - Header text shown in the crash reporter dialog.
- **Header description** - Description text shown below the header. Leave empty to hide.
- **Submit button label** - Label for the submit/send button.
- **Cancel button label** - Label for the cancel button. Set to empty string to hide the button.
- **Accent color** - Primary accent color used for the crash reporter UI elements.
- **Window closable** - When disabled, the user cannot close the crash reporter window without submitting the report. The native close button is disabled and the cancel button is hidden. Enabled by default.

These settings are applied each time the SDK initializes. Properties that are not overridden will use the crash reporter's built-in defaults.

### Using a Custom Crash Reporter Build

For more advanced customization (such as custom logos or layout changes), you can fork the [sentry-desktop-crash-reporter](https://github.com/getsentry/sentry-desktop-crash-reporter) project and build a custom version.

To build on Windows:

```powershell
cd sentry-desktop-crash-reporter
dotnet publish -f net9.0-desktop -r win-x64 Sentry.CrashReporter/Sentry.CrashReporter.csproj -o build-output
```

For other platforms, replace the runtime identifier with `win-arm64`, `linux-x64`, `linux-arm64`, or `osx-arm64`.

Copy the output executable into the plugin's ThirdParty binaries directory:

- **Windows (x64)**: `Plugins/sentry-unreal/Source/ThirdParty/Win64/Sentry.CrashReporter.exe`
- **Windows (ARM64)**: `Plugins/sentry-unreal/Source/ThirdParty/WinArm64/Sentry.CrashReporter.exe`
- **Linux (x64)**: `Plugins/sentry-unreal/Source/ThirdParty/Linux/Sentry.CrashReporter`
- **Linux (ARM64)**: `Plugins/sentry-unreal/Source/ThirdParty/LinuxArm64/Sentry.CrashReporter`
- **macOS**: `Plugins/sentry-unreal/Source/ThirdParty/Mac/Sentry.CrashReporter`

After replacing the executable, delete the project's `Build` and `Intermediate` directories and rebuild to ensure the updated binary is picked up.

Refer to the project's [customization guide](https://github.com/getsentry/sentry-desktop-crash-reporter/blob/main/CUSTOMIZATION.md) for details on what can be changed.

## Stacktrace Display

The Sentry Crash Reporter can display a symbolicated stacktrace of the crashed thread, allowing users to review the call stack directly in the crash dialog before submitting the report.

This feature requires client-side stack walking, which is supported through two backend configurations:

- **[Native backend](/platforms/unreal/configuration/native-backend/)**: Performs stack walking and symbolication automatically using the platform's debug APIs. No additional configuration is needed.
- **Crashpad backend**: Requires a custom build of `sentry-native` with the `CRASHPAD_ENABLE_STACKTRACE` CMake flag enabled. See [below](#building-sentry-native-with-stacktrace-support) for instructions.

<Alert>

For **Shipping builds**, the stacktrace can only be symbolicated if debug information is available at runtime. Enable **Include Debug Files in Shipping Builds** in **Project Settings > Packaging** to ensure function names are resolved in the crash reporter dialog.

</Alert>

### Building sentry-native With Stacktrace Support

To enable client-side stacktrace display when using the Crashpad backend, you need to rebuild `sentry-native` with the `CRASHPAD_ENABLE_STACKTRACE` CMake flag. The example below shows a Windows build — for other platforms, refer to the [sentry-native build documentation](https://github.com/getsentry/sentry-native#build-and-installation) and the [CI build scripts](https://github.com/getsentry/sentry-unreal/tree/main/scripts) in the sentry-unreal repository.

Clone [sentry-native](https://github.com/getsentry/sentry-native) and check out the version that matches your plugin (pinned under `modules/sentry-native` in the [sentry-unreal](https://github.com/getsentry/sentry-unreal) repository). Then build:

```powershell
cd D:\projects\sentry-native

cmake -G "Visual Studio 17 2022" -S . -B build `
-D SENTRY_BACKEND=crashpad `
-D SENTRY_SDK_NAME=sentry.native.unreal `
-D SENTRY_BUILD_SHARED_LIBS=OFF `
-D CRASHPAD_ENABLE_STACKTRACE=ON

cmake --build build --target sentry --config RelWithDebInfo --parallel
cmake --build build --target crashpad_handler --config RelWithDebInfo --parallel
cmake --install build --prefix install --config RelWithDebInfo
```

Copy the build output into your project's plugin directory:

- `install/lib/*` → `Plugins/sentry-unreal/Source/ThirdParty/Win64/Crashpad/lib/`
- `install/bin/crashpad_handler.exe` → `Plugins/sentry-unreal/Source/ThirdParty/Win64/Crashpad/bin/`
- `install/include/sentry.h` → `Plugins/sentry-unreal/Source/ThirdParty/Win64/Crashpad/include/`

After replacing binaries, delete your project's `Build` and `Intermediate` directories and rebuild.

<Alert>

The `CRASHPAD_ENABLE_STACKTRACE` feature is experimental. On Linux, it requires the `libunwind-ptrace` development package.

</Alert>
2 changes: 1 addition & 1 deletion docs/platforms/unreal/configuration/options.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ This feature is supported only for Crashpad backend on Windows and Linux (defaul

When enabled, a standalone crash reporter dialog is shown to the user after a crash, allowing them to review crash details and provide feedback before the report is submitted to Sentry.

See <PlatformLink to="/configuration/setup-crashreporter/#sentry-crash-reporter">Sentry Crash Reporter</PlatformLink> for setup details and customization options.
See <PlatformLink to="/configuration/crash-reporter/sentry-crash-reporter/">Sentry Crash Reporter</PlatformLink> for setup details and customization options.

<Alert>

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/unreal/enriching-events/context/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ The same result can be achieved by calling corresponding function in blueprint:

![Set context](./unreal_set_context.png)

Alternatively, this configuration can be provided to the crash reporter [during initialization](/platforms/unreal/configuration/setup-crashreporter/#configure-attributes).
Alternatively, this configuration can be provided to the crash reporter [during initialization](/platforms/unreal/configuration/crash-reporter/crash-reporter-client/#configure-the-crash-reporter-attributes).

<Alert>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ The same result can be achieved by calling corresponding function in blueprint:

![Set user](./img/unreal_set_user.png)

Alternatively, this configuration can be provided to the crash reporter [during initialization](/platforms/unreal/configuration/setup-crashreporter/#configure-attributes).
Alternatively, this configuration can be provided to the crash reporter [during initialization](/platforms/unreal/configuration/crash-reporter/crash-reporter-client/#configure-the-crash-reporter-attributes).

You can also clear the currently set user:

Expand All @@ -74,4 +74,4 @@ Or in blueprint:

![Unset user](./img/unreal_unset_user.png)

In configurations with a crash reporter, create a new `__sentry` config object without the `user` field. Then, call `FGenericCrashContext::SetGameData` from the [initialization function](/platforms/unreal/configuration/setup-crashreporter/#configure-attributes) with the new JSON data. You have to provide all other fields again, as the call overrides the previously registered data.
In configurations with a crash reporter, create a new `__sentry` config object without the `user` field. Then, call `FGenericCrashContext::SetGameData` from the [initialization function](/platforms/unreal/configuration/crash-reporter/crash-reporter-client/#configure-the-crash-reporter-attributes) with the new JSON data. You have to provide all other fields again, as the call overrides the previously registered data.
Loading
Loading