---
title: Errors | ReplayPilot Docs
description: How ReplayPilot catches, groups, and shows JavaScript errors from your app.
canonical: https://replaypilot.com/docs/errors
---

# Errors | ReplayPilot Docs

Search docs…⌘KBrowse docs

Get started
- [Installation](/docs/getting-started)
- [What's new](/docs/whats-new)

Dashboard
- [Replays & the session player](/docs/replays)
- [Errors](/docs/errors)
- [Frustration signals](/docs/frustration)
- [Funnels](/docs/funnels)
- [Releases](/docs/releases)
- [Logs & network requests](/docs/logs)
- [Visitors](/docs/visitors)
- [Heatmaps](/docs/heatmaps)
- [Click map](/docs/click-map)
- [Cohort retention](/docs/cohorts)
- [Projects & project keys](/docs/projects)
- [Alerts](/docs/alerts)
- [Shared links](/docs/shared-links)

Integrations
- [Integrations](/docs/integrations)
- [MCP server](/docs/mcp-server)

Account & data
- [Billing & plans](/docs/billing)
- [Security & masking](/docs/security-masking)
- [Data retention & limits](/docs/retention-limits)
- [Team accounts](/docs/team-accounts)

# Errors

How ReplayPilot catches, groups, and shows JavaScript errors from your app.

## Where errors come from

ReplayPilot's error list merges two sources into one place:

- **JavaScript errors caught directly.** The recording snippet on your site catches errors as they happen during a session, with no setup beyond installing the snippet.

- **Errors sent by a Sentry SDK.** ReplayPilot speaks Sentry's own envelope protocol, so any official Sentry SDK (@sentry/browser, @sentry/node, @sentry/react, @sentry/nextjs, and the rest) can send straight to ReplayPilot with no code changes beyond swapping the dsn. You don't install a ReplayPilot-specific SDK for backend or server-side errors; you point the Sentry SDK you already have at us.

## Connecting a Sentry SDK

Wherever your app currently calls Sentry.init(...), change the dsn to your ReplayPilot project's public key, keeping everything else in your Sentry setup as-is:

jsimport * as Sentry from "@sentry/node";

Sentry.init({
dsn: "https://pk_live_xxxxxxxx@ingest.replaypilot.com/1",
});

Replace pk_live_xxxxxxxx with your project's public key, the same one from the [install snippet](/docs/getting-started). That key is what routes the error to your project. A Sentry DSN also expects a numeric-looking segment after the host, the /1 above. ReplayPilot's ingest endpoint ignores that part, but the SDK requires the shape, so leave any number there.

This works for any Sentry SDK, not just Node; the same dsn swap works in a browser, React, or Next.js Sentry setup.

## How errors become issues

ReplayPilot files each error into an "issue" alongside past occurrences of the same error. ReplayPilot computes a fingerprint from the error type and the function and file names in its stack trace, not the exact line numbers. That means a small code edit that shifts line numbers won't split one error into two issues.

The grouping is simpler than Sentry's own algorithm. It doesn't reorder or de-duplicate stack frames the way Sentry can. For most apps it groups well, but you may occasionally see two related errors land in separate issues.

## Issue status

Every issue has one of three statuses, matching Sentry's model:

- **Unresolved**: needs attention.

- **Resolved**: you've fixed it.

- **Ignored**: you're aware of it and don't want alerts or attention drawn to it.

If a resolved issue happens again, it reopens to unresolved automatically. You don't need to check back on it yourself.

You can change an issue's status from its detail page: mark it Resolved or Ignored, or move it back to Unresolved.

## The issue detail page

Open an issue to see:

- Its title and current status.

- When it was first and last seen, and how many times it's happened.

- A stack trace. If you've uploaded a source map for the release, ReplayPilot resolves the trace against it and shows your original source instead of minified code. See [Releases](/docs/releases) for how to upload source maps.

- A list of recent occurrences, up to the 50 most recent. Each occurrence links to its session recording, if one exists.

## Finding an error

The errors list lets you filter by project and search by error text.

- Errors caught directly by ReplayPilot's snippet link straight to the session recording where they happened.

- Errors from a Sentry SDK link to the issue detail page instead, and show a status badge, since a Sentry-sourced error isn't always tied to one ReplayPilot recording.

## Alerts

You can set up an alert to notify you when a new error happens. See [Alerts](/docs/alerts) for how alert rules work.

[← Replays & the session player](/docs/replays)[Frustration signals →](/docs/frustration)