relay icon indicating copy to clipboard operation
relay copied to clipboard

No callstack information for Unreal Engine on Linux using Crash Report Client

Open AfterThunk opened this issue 3 months ago • 2 comments

We're using Sentry for Unreal, and using UE 5.4.

We decided to move away from the Sentry Plugin and just rely on UE's built in Crash Report Client, as we didn't need any additional features.

We were able to use the engine provided API to set the data Sentry expects with the Crash Report ("__sentry" field on crash report as a JSON Object with "release" and "environment" set).

This works fine on Windows, because UE generates minidumps by default. This does not work on Linux (and presumably other platforms) because they don't. While we were able to get reports for Ensures and Crashes, they did not contain any call stack information (other than in the log message), and were not fingerprinted or grouped correctly.

It seems like Sentry relies exclusively on Minidumps to generate that info.

Even when Minidumps aren't available, Unreal Engine always provides a CrashContext.runtime-xml file for crashes. This contains a small, but descriptive, set of information, including:

  • The Callstack (in multiple places)
  • The Error Message
  • Hardware Information
  • The type of error (Stall, Ensure, Crash, etc.)
  • Any data the game provides (including the data that Sentry may inject).

All of this information IS available on these issue reports in Sentry, so it seems like Sentry is already parsing / processing the "CrashContext.runtime-xml" file for that data.

This file is also substantially smaller than Minidumps (usually only a few tens of KB, sometimes even smaller).

It would be great if Sentry could use this file to fill in the Game Version, Callstack Information, Issue Fingerprint, etc. if no minidump was available.

I've attached an example (I changed the extension to .xml to get around upload issues).

CrashContext.runtime-xml.xml

Image

AfterThunk avatar Sep 28 '25 17:09 AfterThunk

As discussed on Discord, adding Sentry fixes the issue as it will capture a proper minidump.

But we should look into extracting the stacktrace from the XML if there is no minidump.

Dav1dde avatar Sep 29 '25 11:09 Dav1dde

This would be a needle-mover change for our studio as well, I wanted to add support into this issue to help raise visibility. Thanks.

wwarnecke-kintsugiyama avatar Dec 08 '25 19:12 wwarnecke-kintsugiyama