Quick answer: A crash is when the game terminates unexpectedly; a hang is when it becomes unresponsive but keeps running, stuck without progressing. A crash leaves a stack trace; a hang points to a deadlock or blocked thread.

Crash and hang are two distinct ways a game can fail, one stops dead, the other gets stuck. They feel similar to players but have different causes and require different debugging. Here's the difference between a crash and a hang.

What a Crash Is

A crash is when the game terminates unexpectedly, the process ends and the game closes. It's caused by something fatal the program can't continue past, typically an unhandled exception or a memory access violation. The defining trait is termination: after a crash, the game is gone.

Crashes leave a clear forensic trail, a stack trace at the point of failure, which makes them diagnosable. Bugnet captures crashes automatically with symbolicated stack traces, so even an abrupt crash gives you a specific line and call chain to investigate.

What a Hang Is

A hang is when the game stops responding but keeps running, the process is alive, but it's stuck and not progressing, unresponsive to input. On mobile, a hang that lasts long enough is often surfaced by the OS as an ANR (Application Not Responding). The cause is usually a deadlock, an infinite loop, or a thread blocked on something that never completes.

Unlike a crash, a hang doesn't terminate, so it may not produce a clean stack trace at a single failure point. Diagnosing it means finding where the program got stuck, often around threading or a long-running operation that blocked the main thread.

Why the Distinction Matters

The distinction directs your debugging. A crash points to a fatal error with a stack trace to follow, often a quick lead. A hang points to a stuck state, a deadlock, infinite loop, or blocked main thread, which requires investigating concurrency and long operations, a different and often trickier diagnosis.

Both ruin the player's session, so both deserve attention. Bugnet captures crashes with stack traces and helps surface patterns in hangs and unresponsiveness. So treat crash and hang as distinct: a crash terminates with a trace, a hang freezes while running (an ANR on mobile), each requiring a different debugging approach.

A crash terminates the game (leaving a stack trace); a hang freezes it while still running (a deadlock or blocked thread, surfaced as an ANR on mobile). Each points at different causes and debugging.