DeepTracer
Features

Error Tracking

Automatic error grouping, severity levels, and AI-powered investigation.

DeepTracer catches every error in your app and automatically groups them by root cause. Same bug, same group — regardless of which user triggered it or which request caused it.

How error grouping works

When an error arrives, DeepTracer generates a fingerprint based on the error type, message pattern, and stack trace. Errors with the same fingerprint are grouped together, so you see one entry per unique bug — not thousands of duplicate reports.

Each error group shows you:

  • Occurrence count — How many times this error has happened
  • First seen / Last seen — When it first appeared and when it last fired
  • Affected users — How many unique users hit this error
  • AI-generated title — A short, human-readable summary of the bug

Severity levels

Every error group has a severity level so you can focus on what matters:

SeverityMeaning
CriticalYour app is broken for users right now
HighA major feature is failing
MediumSomething is wrong but users can work around it
LowMinor issue, non-blocking

DeepTracer assigns severity automatically based on error frequency, affected users, and error type. You can override it manually.

Resolution status

Track your progress fixing bugs:

  • Unresolved — This error is still happening (default)
  • Resolved — You fixed it. Add a note explaining what you changed.

If a resolved error starts happening again, DeepTracer automatically reopens it and notifies you.

Every error includes a trail of breadcrumbs — the recent events that happened right before the crash. This gives you context without having to search through logs manually.

Breadcrumbs include things like:

  • HTTP requests made
  • Console logs
  • User navigation (page changes)
  • Custom events you logged

Capturing errors manually

DeepTracer captures unhandled errors automatically. For errors you catch yourself, report them manually:

try {
  await chargeCustomer(orderId)
} catch (error) {
  logger.captureError(error, {
    severity: "high",
    metadata: { orderId, customerId },
  })
}

You don't need to call captureError for unhandled errors — DeepTracer catches those automatically. Use it for errors you catch but still want to track.

Dashboard features

  • Error groups list — All unique errors, sorted by last seen or occurrence count
  • Timeseries chart — See error frequency over time to spot spikes
  • Error detail view — Full stack trace, breadcrumbs, metadata, and affected users
  • One-click investigation — Hit "Investigate" and let AI explain the root cause

What's next?

On this page