From ce097c31c539954b9ca300317e9a5ace94bf5ac4 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 24 Jul 2026 15:46:08 +0300 Subject: [PATCH] Document Android app-hang tracking for Unreal The Unreal SDK now supports the sentry-native app-hang watchdog on Android (via the NDK integration), monitoring the game thread alongside the Java SDK's ANR detection. Update the App Hangs page accordingly. --- docs/platforms/unreal/configuration/app-hangs/index.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/platforms/unreal/configuration/app-hangs/index.mdx b/docs/platforms/unreal/configuration/app-hangs/index.mdx index 732950ba266881..1ec33a86b029e4 100644 --- a/docs/platforms/unreal/configuration/app-hangs/index.mdx +++ b/docs/platforms/unreal/configuration/app-hangs/index.mdx @@ -15,7 +15,7 @@ The SDK can detect hangs in one of two ways: -The engine watcher is available on Windows and Linux. The native watchdog is available on Windows, Linux, and macOS (which needs the native backend). On macOS and iOS, the Cocoa SDK provides its own app hang detection. On Android, the Java SDK provides its own ANR detection. +The engine watcher is available on Windows and Linux. The native watchdog is available on Windows, Linux, macOS (which needs the native backend), and Android (routed through the NDK integration). On macOS and iOS, the Cocoa SDK provides its own app hang detection. On Android, the Java SDK also provides its own ANR detection. @@ -80,6 +80,8 @@ UseNativeHangTracking=True On macOS, this option requires the native backend. +On Android, the native watchdog is provided by the sentry-native NDK integration and monitors the game thread. It runs alongside the Java SDK's ANR detection, which monitors the Android main (UI) thread, so a freeze that blocks both threads can be reported as both a hang event and an ANR. + ### Hang Timeout The hang timeout controls how long the thread must be unresponsive before a hang event is captured. The default is 5 seconds, with a minimum of 1 second. @@ -123,3 +125,4 @@ public: - **One thread at a time (engine watcher)**: If multiple threads become stuck simultaneously, only one hang is reported per episode. The engine's `FThreadHeartBeat` reports one stuck thread at a time, so additional stuck threads are only detected after the first one recovers. - **Game thread only (native watchdog)**: The native watchdog monitors the game thread. - **macOS requires the native backend**: On macOS, hang tracking is only available through the native watchdog with the native backend enabled. The engine watcher is not available on macOS. +- **Android runs both detectors**: On Android, enabling the native watchdog does not disable the Java SDK's ANR detection. The native watchdog monitors the game thread while ANR detection monitors the main (UI) thread, so a freeze that affects both threads can produce two separate events.