Quick answer: A crash signature is a compact identifier, a fingerprint, computed from a crash's characteristics, primarily its stack trace, that represents the underlying cause. Two crashes with the same signature are treated as the same bug, which is what lets a crash reporting tool group thousands of reports into distinct issues.
If crash grouping is the feature, the crash signature is the mechanism behind it. The signature is how a tool decides whether two crashes are "the same." Get the signature right and identical crashes group cleanly into one issue; get it wrong and either unrelated crashes merge or the same crash splinters into many. Understanding what a signature is built from explains why your crashes group the way they do.
What a Signature Represents
A crash signature is meant to represent the root cause of a crash, not the surface circumstances. Two players might crash at different times, on different hardware, after doing different things, but if the underlying failure is the same broken function, they should share a signature. The signature distills the crash down to its identifying essence so that "sameness" can be judged automatically.
Conceptually it is like a fingerprint or a hash: a short value where matching values mean matching crashes. This is what enables grouping, deduplication, and counting, all of which depend on reliably answering "is this the same crash as that one?"
How a Signature Is Computed
The primary ingredient is the stack trace, specifically the top frames, where the crash actually occurred. A signature typically combines the crashing function and a few frames of context, often along with the exception type. Crucially, it normalizes away the parts that vary between instances of the same crash, memory addresses, thread IDs, timestamps, so that two reports of one bug produce the same signature despite superficial differences.
The art is in choosing how much of the trace to include. Too little and different crashes that happen to share a top frame get merged; too much and minor variations split one crash into many signatures. Well-tuned signature computation is what makes grouping accurate, which is why it is a core part of any serious crash reporting system rather than something most studios build themselves.
Why Signatures Matter to You
You rarely interact with the raw signature directly, but it determines your entire crash triage experience. Good signatures mean your dashboard shows clean, distinct issues, one per real bug, each with an accurate occurrence count. Poor signatures mean either inflated noise (one bug as many issues) or dangerous merging (many bugs hidden in one), both of which mislead your prioritization.
Bugnet computes crash signatures from the stack trace and groups by them automatically, so identical crashes collapse into a single issue with a running count while genuinely different crashes stay separate. The result is that you can trust the list you triage, each entry is one root cause, and the count next to it is a real measure of how many players that cause has affected.
A crash signature is a crash's fingerprint. Get it right and every group is one real bug; get it wrong and your triage lies to you.