Real-time Error MonitoringExceptions · Stack traces · Source maps · Alerts

Smart Crash Detection for Developers Who Ship Fast

Atatus groups exceptions from your servers and browsers, shows the exact line with its stack trace, and tells you which users, versions and browsers each error hit.

7Backend languages through APM agents
3States per error: open, resolved, ignored
1 clickFrom an error to a Jira issue
Errorsproduction
APM errors
01 / Error inbox

Grouped errors. Ranked by impact.

Repeats are grouped, with events and users counted for each.

live Sorted by highest occurrence
  • TypeError: Cannot read properties of undefined (reading 'total')src/cart/total.ts:42927 events279 users
  • SQLSTATE[42000]: Syntax error or access violation: 1064app/Models/Report.php:118148 events24 users
  • TimeoutError: upstream timeout after 900 mspayment/client.js:8865 events15 users

Try Resolve or Ignore · sample data

02 / One error

Every occurrence. Who it hit.

Step through each event of one error. See its user, browser, version and stack.

Error group · 24 events in the last 6 hTypeError: Cannot read properties of undefined (reading 'total')
Event 24 of 24
Time
14:48
User
u_7944
Browser
Chrome 141
OS
Android 16
App version
2.14.0
Release stage
production
URL
/cart
Stack trace · event 24
  1. calculateTotalsrc/cart/total.ts:42
  2. CartSummary.rendersrc/cart/Summary.tsx:18
  3. onCheckoutClicksrc/checkout/Button.tsx:27
Browser
  • Chrome 15
  • Safari 6
  • Edge 3
Version
  • 2.14.0 20
  • 2.13.2 4
Release stage
  • production 22
  • staging 2
URL
  • /checkout 19
  • /cart 5

Click a tick or use ← → to move between events · counts cover all 24 events · sample data

03 / Source maps

Minified in production. Readable in Atatus.

Flip the source map to see the same stack before and after it is mapped.

Browser error · real user monitoringTypeError: Cannot read properties of undefined (reading 'total')
  1. calculateTotalsrc/cart/total.ts:42:17
    40export function calculateTotal(cart: Cart) {41  const items = cart.items ?? [];42  return items.reduce((sum, i) => sum + i.price.total, 0);43}
  2. CartSummary.rendersrc/cart/Summary.tsx:18:9
  3. renderWithHooksreact-dom.development.js:16305
  4. onCheckoutClicksrc/checkout/Button.tsx:27:5
  5. HTMLButtonElement.dispatchreact-dom.development.js:4213
// last line of app.3f9a1c.js //# sourceMappingURL=app.3f9a1c.js.map
  • The error has a stack trace
  • app.3f9a1c.js is publicly reachable
  • The map file is publicly reachable

Sample stack

04 / Jira

From error to ticket.

Create a Jira issue from the error page, or link one that already exists.

OpenTypeError: Cannot read properties of undefined (reading 'total')calculateTotal · src/cart/total.ts:42 · 927 events · 279 users
ProjectKAN · Checkout
Issue type
Summary[Atatus] TypeError: Cannot read properties of undefined (reading 'total')
DescriptioncalculateTotal · src/cart/total.ts:42 927 events · 279 users · production https://app.atatus.com/… (link to the error)
05 / In the product

Error Tracking, screen by screen.

Real screens from the Atatus app.

Error TrackingError inbox
Error Tracking: Error inbox
FAQ

Questions engineers ask about error tracking

Pricing, deployment, data and the agent. If something is missing, a person will answer it on a demo call.

Talk to an engineer
  • Error monitoring is the automated process of detecting, capturing, and alerting on runtime exceptions and errors in your production application. Without it, you learn about critical bugs from user complaints, support tickets, or app store reviews, often days after they first appeared. Atatus error monitoring gives engineering teams immediate visibility into every exception, with the full context needed to fix it fast.

  • Repeats of the same exception are grouped into one error with a count of events and affected users, so thousands of occurrences of the same TypeError show up as one entry you can resolve or ignore. In the browser agent you can also set your own grouping key with setGroupingKeyCallback when you want errors grouped differently.

  • Yes. Atatus maps minified JavaScript stack traces back to your original files, functions and line numbers. If your source map is publicly reachable and referenced with a sourceMappingURL comment, Atatus downloads it automatically. If you do not want to expose it, upload it with the source map API in your deploy script, tagged with the release version.

  • Each error event carries its stack trace, the request or page it happened on, the user, the browser or agent, the app version, the release stage, the host and any tags or custom data you send. Browser errors also include a timeline of the user actions before the error, and you can add your own breadcrumbs.

  • Create an alert rule on Exception Count for your application, either with a fixed threshold or as a baseline alert that fires when errors move away from their usual level. Browser projects can alert on JS error count. Notifications go to email, Slack, Microsoft Teams, PagerDuty, OpsGenie, Jira, webhooks and more.

  • Backend errors come from the Atatus APM agents for Node.js, Python, Java, .NET, PHP, Go and Ruby. Browser errors come from the real user monitoring agent, which supports plain JavaScript and frameworks such as React, Angular, AngularJS, Vue, Ember and Backbone.

  • Yes. Each error is Open, Resolved or Ignored. Resolve an error once your fix ships, ignore one you do not plan to fix to stop its notifications, and reopen either at any time. Status changes also work through the Atatus MCP Server, so an assistant or another tool can close out an error.

Get started

Group every error. Fix the right one first.

Group errors by impact, open the exact line and see which version and browser they hit.

  • SaaS
  • On-premises
  • Hybrid
  • BYOC
  • No per-user pricing

Compare Atatus with Sentry · Rollbar · Bugsnag