What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cypress Cloud Test Replay lets you inspect a recorded Cypress test run in CI—including the DOM, network activity, console output, JavaScript errors, and element rendering—so you can investigate what happened around a failure instead of relying only on its final error message. Start with the failed attempt’s error and code frame, then inspect the replay at the failure point and compare it with a passing attempt if one is available. Replay is evidence for diagnosis; retries and reruns execute tests again and serve different purposes.

What Test Replay shows—and what it does not

In this guide, “Test Replay” means Cypress Cloud’s feature for inspecting recorded Cypress test execution in CI. It is not a generic name for every framework’s replay feature, and it is distinct from session-replay tools used to analyze real users’ browsing sessions. Cypress describes replay as a way to inspect captured run details such as DOM state, network requests, console logs, JavaScript errors, and element rendering. See the Cypress Test Replay documentation.

A screenshot or video can show what a page looked like, but it may not explain why it looked that way. Replay can help connect the visible state to nearby commands, requests, responses, and console output. It does not guarantee that the root cause will be obvious or that the same failure can be reproduced locally.

Debug a failed CI attempt with the replay

  1. Read the failure report first. In Cypress Cloud, open the failed test attempt and note its error message, stack trace, and code frame. Identify the command or assertion that failed and whether the run contains other attempts with a different outcome. Cypress’s CI debugging guide uses this failure information as the starting point.
  2. Open the replay at the failure. Use the replay timeline to locate the failed command, then move back through the last successful actions and forward to the first unexpected state. Treat the timeline as an inspection of the recorded CI run, not merely as a video to watch from beginning to end.
  3. Inspect the page state at that moment. Check the DOM and element rendering around the failed assertion. Ask whether the element was absent, hidden, disabled, or different from what the test expected. A missing element is an observation, not yet an explanation.
  4. Line up network and console evidence. At the same point in the timeline, inspect relevant requests and responses, console messages, and JavaScript errors. For example, a request that failed or returned unexpected data may help explain why the UI state differed. Confirm the relationship in the recorded evidence rather than assuming a particular cause.
  5. Compare a passing attempt when possible. Compare the same logical point in a passing and failing attempt. Look for differences in the DOM, command sequence, response data, or timing-related events before changing a selector or adding a wait. Cypress notes that comparison requires recorded runs on both sides; record the default or base branch as well as the branch containing the change.
  6. Choose one cause to test. The evidence may suggest an assertion or product regression, timing or race behavior, an unexpected response, a JavaScript error, or an environment-specific difference. These are hypotheses, not an exhaustive list. Make a targeted change, rerun the test, and check whether the same failure signature disappears without weakening the assertion.

Understand retries, reruns, and replay

These terms describe different parts of a debugging workflow. Cypress explains the distinction in its Cypress Cloud FAQ.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Mechanism When it happens What it helps answer
Replay After a recorded attempt, by inspecting its captured execution. What state and events surrounded this attempt’s behavior?
Retry Another attempt at a failed test during the same test run. Does the test produce a different outcome on another attempt?
Rerun optimization After a CI build has completed; Cypress describes selecting previously failed tests or specs for another run. Can the failed tests or specs be run again without rerunning everything?

If a test fails and then passes on retry without a code change, treat that as a flakiness signal—not proof that the failure is harmless. A retry reveals another outcome; it does not explain the original failure. Use replay and attempt history to investigate the difference.

Flakiness is not exclusive to Cypress. The pytest flaky-test guide notes that rerunning failed tests can mitigate the effects of flaky tests by giving them more chances to pass, and identifies pytest-replay as a plugin for reproducing CI crashes or flaky tests locally. That plugin belongs to the pytest ecosystem; it is not Cypress Cloud Test Replay.

When replay is missing or cannot be opened

Replay availability depends on capture settings and the environment. Cypress’s current documentation says Test Replay requires recorded runs using Cypress v13 or later, a Chromium-based browser, and the feature enabled in project settings. It also notes that Safari versions below 16.4 may lack APIs needed to view a replay. Check the current feature troubleshooting guidance for product requirements before changing a CI workflow.

  • No replay for the run: Confirm that the run was recorded to Cypress Cloud, the project setting for Test Replay is enabled, the Cypress version meets the documented requirement, and the run used a supported browser.
  • Replay upload failed: Check the CI log for upload errors, then investigate network connectivity and firewall or proxy rules that could block upload. Cypress also identifies run-time limits as a possible obstacle.
  • Replay is difficult to view in Safari: Check the browser version; Cypress documents that Safari below 16.4 may lack APIs required to view a replay.
  • Replay capture affects a resource-heavy test: Cypress warns that canvas capture can be resource-intensive, particularly for large canvas elements. Monitor the test’s performance and disable canvas capture if needed.
  • The Cypress Runner UI is not rendered during cypress run: Cypress says enabling replay suppresses Runner UI rendering in that mode. Forcing the UI with --runner-ui may slow tests, especially on lower-resourced machines.

Replay, screenshots, and local framework debugging

Choose the artifact that preserves the evidence you need. Cypress Test Replay is useful when you need to inspect recorded DOM, network, console, and rendering state. A screenshot or video is a visual artifact and may be sufficient when the question is simply what appeared on screen. A screenshot of the current page is not a replacement for the historical state and event sequence in a failed CI attempt.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a local Playwright investigation, the official documentation describes the --debug command for debugging a test file and an HTML report with filters for browser, status, and flaky tests. Those are Playwright workflow features, not Cypress Cloud replay. See Playwright’s running and debugging tests guide.

Access, sensitive data, and performance considerations

Cypress documentation says replay access follows project access: people who can access the project can see its test replays, including test data. Before recording runs that may contain sensitive information, review Cypress Cloud’s Terms of Use and Security & Compliance guidance. The same documentation describes Test Replay as available on all Cypress Cloud plans subject to usage limits; plan terms and limits can change, so verify current details with Cypress.

Large canvas captures can consume resources, and forcing Runner UI rendering with replay enabled may slow tests on lower-resourced machines. Monitor the effect in your own CI environment rather than assuming capture has no performance cost.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo is a website screenshot API, not a Cypress replay viewer: it cannot recover a past CI run’s DOM, network events, or console history. It can provide a clean screenshot of a URL for a visual check or an artifact alongside your test investigation. For one-call capture, use the ScreenshotNeo API documentation:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are not billed. It also offers an MCP server so AI agents can take screenshots. The free plan includes 1,000 screenshots per month with no card, and paid plans start at $5 for 3,000. Learn about ScreenshotNeo or sign up for 1,000 free screenshots a month with no card.

Frequently Asked Questions

Does Cypress Test Replay work on a test that was run only on my computer?

The documented feature is for recorded Cypress execution in CI through Cypress Cloud; it is not a general local session recorder.

Is Cypress Test Replay the same thing as pytest-replay?

No. Cypress Test Replay is a Cypress Cloud feature. pytest-replay is a pytest plugin mentioned for reproducing CI crashes or flaky tests.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.