Webclat / PostHog Practice

Turning PostHog's error tracking into something your team actually watches

Error tracking that fires an alert for every exception trains everyone to ignore the channel within a week. The engineering work is deciding what counts as an alertable error, not installing the SDK.

What error tracking captures versus what it should alert on

Once installed, PostHog's error tracking captures unhandled exceptions (and, depending on SDK and configuration, some handled ones you explicitly report) with stack traces, breadcrumbs, and the same person/session context as your other events - which is the real advantage over a standalone error tool: an error shows up next to the session replay and event history for the same user, not in a separate dashboard you have to cross-reference by hand.

Capturing every error and alerting on every error are different decisions. Most installs get the first right and skip the second, which is why error channels get muted.

Implementation done properly

LayerWhat to configure deliberately
Capture scopeWhich error types and severity levels actually get sent - not every caught exception needs to leave the client
Grouping / fingerprintingSimilar errors need to collapse into one issue, or volume becomes unreadable noise instead of a prioritized list
Alert rulesThreshold-based (new issue, spike in known issue, error rate crossing a level) rather than one alert per occurrence
RoutingAlerts reach the team that owns the affected code path, not one shared channel everyone eventually mutes
Live debugger breakpointsFor errors that need runtime inspection beyond a stack trace - a narrower, more advanced capability worth scoping only where stack traces alone are not enough

Monitoring dashboards that survive contact with a real incident

A monitoring view built for error tracking should answer three questions fast: is this a new issue or a known one, is the rate climbing or steady, and which release introduced it. A dashboard that just lists raw error counts without those framings gets checked once and then ignored.

How to verify it worked

  1. Trigger a real error in a staging environment and confirm it appears in PostHog with the expected grouping - not as a duplicate issue for something already tracked.
  2. Confirm the alert rule actually fires on the condition you configured, not on every occurrence - test both a single occurrence (should not alert, if you configured a threshold) and a burst (should alert).
  3. Check that the alert lands with the recipient who owns that code path, and that they can trace it back to the originating release or deploy.
  4. Revisit the alert channel after a week - if it has already been muted or ignored, the threshold or routing is wrong, not the team.

Frequently Asked Questions

How is this different from a standalone error-tracking tool?

The data model is the same category of information, but PostHog ties an error directly to the same person, session, and event timeline as everything else you track - so you can see what a user did right before the error without cross-referencing a second tool.

What's the most common mistake in setup?

Alerting on every error occurrence instead of on new issues or rate changes. It produces so much noise that real incidents get lost in the same channel as background-level exceptions everyone already knows about.

Get alert rules that fire on incidents, not on noise.

We scope capture, grouping, and alert thresholds against your actual error volume, so the channel stays something people check.

Design My Alert Rules