Skip to content

Events, issues and triage

How errors are grouped into issues, statuses, search, filters, assignment and archiving.

Markdown
On this page

An event is one error report from your app. An issue is every event with the same cause, grouped together — a bug that fired 3,000 times is one issue with 3,000 events. You triage issues, not events.

How errors are grouped#

Your node computes a fingerprint for each event:

  • With a stack trace: the exception type plus up to 30 of the newest in-app frames — each frame's module or file name and function name. Line and column numbers are not used, so an issue survives small code changes.

  • Without a stack trace: the exception type and its message, or the message alone.

  • Before comparing, volatile parts are normalised: UUIDs, emails, IP addresses, long numbers and hex strings, temporary paths and URL query strings. User 123 not found and User 456 not found become one issue.

The grouping version (currently belvador:2026-10) is stored on every issue. A future version applies to new events only; existing issues are never regrouped.

Your own grouping#

Set a fingerprint when the default groups too much or too little:

TypeScript
import { captureException, withScope } from "@belvador/browser";withScope((scope) => {  // All failures of one payment provider become one issue.  scope.setFingerprint(["payment-provider-down", provider]);  captureException(error);});

Include "{{ default }}" in the list to refine the default grouping instead of replacing it.

Statuses#

StatusMeaning
UnresolvedNeeds attention. Sub-states: New, Ongoing, Escalating, Regressed
ResolvedFixed. A newer event brings it back as Regressed
ArchivedHidden on purpose, until a condition you chose — or forever

An issue is Escalating when it had at least 10 events in the last 60 minutes and at least five times its hourly average over the 7 days before. Events are counted as they arrive, so a job that reports every retried attempt reaches that threshold sooner than one that reports only its final failure (retries).

Issues also carry a Priority: High, Medium or Low.

Actions#

Open the action menu on an issue, or select several in the list (up to 100 at once):

ActionEffect
Resolve nowMarks it fixed. Any later event reopens it as Regressed.
Resolve in next releaseReopens only when the error appears in a newer release than the one you were on — use it when the fix is deployed later. Needs release set in the SDK.
UnresolveBack to Unresolved.
ArchiveUntil it escalates, Until 100 more events, Until 10 more users are affected, For 24 hours, For 7 days or Forever. When the condition is met, the issue returns.
Assign to me / assign to a member / UnassignWho is looking at it. Viewers cannot be assigned.
PriorityHigh, Medium or Low.

Members, admins and owners can change issues; viewers can only read them.

Find issues#

The search box (press / to focus it) matches plain text in issue titles, culprits, messages, exception values and stack traces, ignoring case. An issue's short ID — such as WEB-1Z — opens that issue directly.

There is no query language: words like is:unresolved or tag:browser are searched as text. Use the filters instead:

FilterValues
ProjectsOne, several or all
StatusUnresolved (default), Resolved, Archived
LevelFatal, Error, Warning, Info, Debug
PriorityHigh, Medium, Low
EnvironmentAny environment the node has seen
AssigneeAnyone, Me, Unassigned, a member
Period1 hour, 24 hours (default), 7, 14 or 30 days
SortLast seen (default), First seen, Events, Users, Priority

Filters live in the page address, so you can bookmark or share a view. Over long periods, searching inside event bodies can stop early to stay fast; titles are always fully searched, and the page says when that happens.

Issue details#

  • Stack trace — choose In-app, All frames or Raw. Frames from minified code are marked Minified until source maps resolve them.

  • Breadcrumbs — steps before the error, if your SDK records them.

  • Tags and Contexts — what your app and the SDK attached, after scrubbing.

  • Attachments — always downloadable. PNG, JPEG, GIF and WebP files, recognised from their bytes, can also be previewed; SVG and every other type are download-only, never opened in the page.

Everything in an event was sent by an app and is shown as plain text — links from event data open through a warning page.

Posts on this topic

All posts

Spotted something wrong or missing? Tell us: hello@belvador.dev