See what happened before the error.

Replay a user’s session with the clicks, route changes, network calls and console messages on one scrubber, and the error marked at the moment it fired.

CapturedDOM, network, console
Sensitive inputMasked before it leaves
Joined toThe error and its trace
acme.io/checkoutord_8f2c · Chrome 128 · 0:52
acme.io/checkout
Pay now
Something went wrong
0:33 / 0:52
EventsConsoleNetwork
  1. 0:12navigate /cart
  2. 0:18click "Add to cart"
  3. 0:24navigate /checkout
  4. 0:31click "Pay now"
  5. 0:33TimeoutError: pool exhausted
  6. 0:34rage click ×3 · "Pay now"
Session
userord_8f2c · guest
devicemacOS · 1440×900
errors1 · linked to MON-4821

Watch the session behind an error

A replay shows what the failure looked like to the person it happened to. Here is one error, from the session attached to it to the session that confirms the fix.

INC-402 · Checkout latency above SLO
Resolved
14:02:11 → 14:19:44 · 17m 33s
14:02:11
Error arrives with its session attached
The replay is on the issue, positioned at the second the error fired.
Errors
14:06:02
Rage clicks show the real cost
Four attempts to pay, nine seconds apart, flagged on the session as rage clicks.
Session replay
14:20:30
Confirmed fixed on a real session
A replay of the same journey after the mitigation, completed, with the request under 400ms.
Session replay

Record and review user sessions

What is captured, what is redacted before it leaves the browser, and how you find the session worth watching.

DOM replay

The page is rebuilt from DOM mutations rather than recorded as video, so it stays sharp at any size.

rrweb
Masking by default

Inputs, passwords and anything you mark are redacted in the browser, before the event is sent.

privacy
Console and network rail

Console messages and network requests beside the scrubber, each one a click to that moment in the session.

events
Rage and dead clicks

Repeated clicks on something that did not respond, flagged on the session as a signal.

signals
Search sessions

Filter to sessions with an error or a rage click, or to a given route or release.

search
Open the trace

From a failing request in the session to the server-side trace it produced.

trace-link
Web vitals in context

LCP, CLS and INP recorded on the session alongside what the user was doing.

vitals

Find the sessions worth watching.

The session list is ranked by signal — errors, rage clicks, abandoned journeys — so you can start with the sessions most likely to explain something.

  • Ranked by signal. Sessions with errors and rage clicks first, rather than the most recent.
  • Filter to the release. Only sessions on the deploy you are investigating.
  • Jump to the moment. The scrubber opens at the error, not at the start of the session.
  • Share a timestamp. A link that opens the replay at the second you want someone else to see.
Sessions · checkout · last 1hranked by signal
Session 8c41 · Chrome 1411 error · 4 rage clicks · abandoned4m 12s
Session 7b19 · Safari 181 error · 2 rage clicks · abandoned2m 48s
Session 5d02 · Chrome 1411 error · completed on retry6m 03s
Session 4a88 · Firefox 133no signals · completed3m 21s

Start recording sessions.

Turn replay on in the browser SDK, set what gets masked, and open your next front-end error with its session attached. Start on the free plan with no card.