> ## Documentation Index
> Fetch the complete documentation index at: https://docs.testdino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Playwright Test Run Anomalies in TestDino

> See what changed in a Playwright test run compared to the project's recent baseline: new failures, slowdowns, new flakes, and recoveries.

The Anomalies tab shows what changed in a test run compared to the project's recent runs. It surfaces tests that newly failed, turned flaky, slowed down, or recovered, so you catch regressions that a plain pass/fail view misses. Find it as the **Anomalies** tab on any test run's details page.

## What it compares against

Each run is compared against the project's recent baseline: its last few runs, up to 10. Detection needs a baseline to work, so it starts once the project has 5 prior runs. Before that, the tab shows how many runs are still needed.

## Anomaly types

The tab groups changes into 5 sections.

| Section                  | What it flags                                                                  |
| :----------------------- | :----------------------------------------------------------------------------- |
| **New failures**         | Tests that failed this run but never failed across the recent baseline         |
| **Duration regressions** | Passing tests that ran much slower than their usual baseline                   |
| **New flakes**           | Tests that turned flaky this run and were not flaky across the baseline        |
| **Persistent failures**  | Tests already broken before this run, failed in the prior run and again here   |
| **Recovered**            | Tests that were chronically failing or flaky-prone and passed cleanly this run |

**New failures** counts only tests that have run before. A brand-new test failing on its first appearance is a new test, not a regression, so it is left out.

Persistent failures and recovered are collapsed by default: persistent failures are the status quo, and recovered is good news.

## What each anomaly shows

Every section lists the affected tests. Click a test to open its details for this run.

| Section                           | Extra detail per test                                             |
| :-------------------------------- | :---------------------------------------------------------------- |
| New failures                      | The test's reliability score before this run, e.g. `82% reliable` |
| Duration regressions              | How much slower it ran, e.g. `2.4× slower`                        |
| New flakes, Persistent, Recovered | Test name only                                                    |

The header summarizes the run with clickable chips: **new failing**, **still failing**, **slower**, **newly flaky**, and **recovered**. Click a chip to jump to that section.

## Severity score

The header shows a **severity** score from 0 to 100 for the run. New failures, regressions, and shared error clusters raise it; recoveries lower it. A higher score means more, or worse, changes in this run. There are no named tiers, just the number.

## Shared error clusters

When 3 or more tests fail with the same error, the header shows a cluster badge, such as `4-test cluster`. It points to the size of the largest group of tests failing for the same reason, so you can fix 1 root cause instead of chasing each failure separately.

The header also breaks failures down by category, with badges like `timeout: 8` or `assertion: 3`.

## States you may see

| State                   | What it means                                                                            |
| :---------------------- | :--------------------------------------------------------------------------------------- |
| **No anomalies**        | The run is in line with the recent baseline                                              |
| **Computing anomalies** | Results are still being prepared. The tab refreshes on its own when they land            |
| **Baseline building**   | The project has fewer than 5 prior runs. The message shows how many are collected so far |

<Note>
  Anomaly detection is per run. It reads run data, so a signed-in user with access to the project can view it, in the app or through a personal access token. CI pipeline keys cannot read it.
</Note>

## Related

<CardGroup cols={2}>
  <Card title="Run Summary" icon="chart-pie" href="/platform/test-runs/playwright-failure-summary">
    Review failed, flaky, and skipped tests by cause
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/platform/playwright-test-runs/errors">
    Group failures by error message within a run
  </Card>

  <Card title="Flaky Tests" icon="shuffle" href="/guides/playwright-flaky-test-detection">
    Detect and fix flaky tests
  </Card>

  <Card title="Analytics" icon="chart-line" href="/platform/playwright-test-analytics">
    Track reliability and performance trends over time
  </Card>
</CardGroup>
