All Articles/Error Tracking

Understanding Error Fingerprints and Deduplication

Learn how fingerprinting prevents duplicate errors from flooding your dashboard.


What Is a Fingerprint?

A fingerprint is a hash that uniquely identifies an error type. It's computed from the error's type, normalized message, and stack trace location. Two errors with the same fingerprint are considered the "same error" and grouped together.

Deduplication

When the same error fires repeatedly in a short time window, the SDK deduplicates:

  • The first occurrence is sent immediately with full details.
  • Subsequent identical errors within the window are counted locally.
  • A summary log is sent with the total count.

This prevents a single bug from consuming your entire log quota.

Normalizing Messages

Dynamic values in error messages are normalized before fingerprinting:

text
"User 12345 not found" → "User [ID] not found"
"Timeout after 3200ms" → "Timeout after [NUM]ms"

This ensures different instances of the same error type are grouped together even when the specific values change.

Overriding the Fingerprint

Set a custom fingerprint when you want specific grouping behavior:

JavaScript
Lognitor.error('API call failed', {
  error: err,
  fingerprint: `api-failure-${endpoint}`,
});

This groups all failures for the same endpoint together, regardless of the underlying error type.