Explore documentation
Exception grouping
Errors are automatically grouped based on their stack trace and other identifying characteristics. This helps you see a consolidated view of similar issues, reducing noise and making it easier to prioritize and resolve problems.
When you view the Errors, you'll see a list of these grouped errors. Each group displays the total number of occurrences, affected users, and a trend chart so you can quickly assess its impact.
Click on any error group to see its detailed view:
- Exceptions: Individual occurrences with timestamps and user details.
- Users: A list of all affected users.
- Tags: Metadata and context extracted from the errors.
- Replays: Session replays linked to the captured errors.
Open an individual exception to see its AI prompt tab with AI-generated explanations and debugging assistance.
Manage the errors
- Resolve: Mark errors as fixed once you've addressed them.
- Ignore: Silence errors you don't need to see, with options to ignore a specific number of future occurrences.
- Unresolve: Reopen an error if it reoccurs or if you change your mind.
- Bulk actions: Apply these actions to multiple error groups at once for efficient management.
How does it work
Better Stack generates a ._pattern field, which is a hash generated from the characteristics of an error using Vector Remap Language (VRL). Errors with the same ._pattern belong to the same group. For complete details on VRL syntax and capabilities, please refer to the official VRL documentation.
Choose how errors are grouped in Errors → Applications → Your application → Group & transform. Three presets are available:
- Group by error name & call stack: The default. Combines the error's
call_stack_hash,type, and normalizedmessage. - Group by call stack: Uses the
call_stack_hashalone, falling back to the error name and normalized message when no call stack is available. - Group by error name: Combines the error's
typeand normalized message.
The presets normalize the message before grouping. UUIDs, hex strings with 8 or more characters, e-mail addresses, IP addresses, and numbers with 4 or more digits are replaced with *. Thanks to this, errors like these end up in the same group:
- User '12345' not found.
- User '67890' not found.
If the error payload contains a fingerprint array, it overrides the calculated grouping. This gives you direct control from your application code. The fingerprint values are joined with :, and any {{ default }} value is replaced with the preset's calculated grouping, so you can extend the default grouping instead of replacing it.
This is the default preset:
Customize exception grouping
In Errors → Applications → Your application → Group & transform, you can switch between the presets, or modify the VRL script to change what information is included in the grouping.
For example, add a custom tag such as service_name to differentiate between your services. Insert this before the final ._pattern line: