Session Replay

Use Session Replay to get video-like reproductions of user interactions to improve your website or app experience.

If you have any questions, feedback or would like to report a bug, please open a GitHub issue with a link to a relevant replay or, if possible, a publicly accessible URL to the page you're attempting to record a replay of.

Session Replay allows you to see video-like reproductions of user sessions which can help you understand what happened before, during, and after an error or performance issue occurred. You'll be able to gain deeper debugging context into issues so that you can reproduce and resolve problems faster without the guesswork. As you play back each session, you'll be able to see every user interaction in relation to network requests, DOM events, and console messages. It’s effectively like having DevTools active in your production user sessions.

Replays are integrated with other parts of the Sentry product so you can see how the user experience is impacted by errors and slow transactions. You'll see session replays associated with error events on the Issue Details page, and those associated with slow transactions on the Transaction Summary page. For backend error replays, any contributing backend errors will be included in the replay's timeline, breadcrumbs, and errors.

Session Replay User Interface

A session replay is not a video recording. It’s a video-like reproduction of a user session, built using the rrweb recording library. Replays are created from snapshots of your web application’s DOM state (the browser’s in-memory representation of HTML). When each snapshot is played back, you will see a video-like recording of what the user did throughout their entire session. The user session includes any pageloads, refreshes, and navigations that happened while the user was on your site.

Session Replay User Interface

The start of a session replay recording can be triggered by:

  • A user session being part of a sampling rate, as controlled by replaysSessionSampleRate. (When a user loads a page, a decision is made whether to sample it or not.)
  • An error occurring during a session that’s not being recorded. The session is then recorded based on replaysOnErrorSampleRate.
  • Manually calling the replay.start() method.

The end of a session replay recording can be triggered by:

  • User inactivity within the tab or page that’s being recorded. (It's considered inactivity when a user doesn’t click or navigate around the site for more than 15 minutes. Mouse scrolls, mouse movements, and keyboard events don’t currently qualify as activity.)
  • A recording reaching the maximum replay duration limit. (Currently, this is 60 minutes.)
  • Manually calling the replay.stop() method.

Unlike sessions on the Releases page, user sessions in Session Replay can span multiple page loads.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").