# HP9007: Some capture data was dropped

> HP9007 (capture-truncated) means buffers overflowed while the page was captured, so its results may be incomplete. Why it happens and what to do about it.

Source: https://hydration.jscrate.dev/docs/issues/hp9007
Last updated: 2026-09-18

HP9007 (`capture-truncated`) means some of the data recorded on the page was
dropped because a buffer overflowed, so the results for that page may be
incomplete. It happens on pages that change a very large part of the DOM at
once, or throw a flood of errors. Treat the page's other findings as a
minimum, not the full list.

| | |
| --- | --- |
| Code | `HP9007` |
| Name | `capture-truncated` |
| Default severity | Warning |
| Group | Test run problems |
| What it means | Buffers overflowed while capturing; results may be incomplete. |

## What the HP9007 capture truncated finding means

The runtime hydration-proof injects into the page records DOM changes and the
errors React reports. To keep the page fast, each buffer has a limit: 20,000
DOM changes in one batch and 500 errors per page. What goes beyond it is
counted and dropped:

```text
Capture buffers overflowed ({"entries":3812}); results may be incomplete.
```

`entries` are DOM changes, `errors` are reported errors and `batches` are whole
groups of changes. It is a warning: the findings that were reported are real,
but some may be missing.

## Likely causes

- A page that renders or replaces a very large DOM in one step: a long table,
  a list without virtualization, a whole page rendered again on the client
  (see [HP1011](https://hydration.jscrate.dev/docs/issues/hp1011)).
- An error loop that reports the same error hundreds of times.

## How to fix it

1. Fix the page's other findings first. A root that React renders again on the
   client is a common source of huge mutation batches, and it disappears with
   the mismatch.
2. If the page throws in a loop, fix that error; the first ones are in the
   report.
3. For very large pages, test a smaller variant of the route as well, for
   example with a query that limits the list (`routes.query`), so every
   finding fits in the buffers.

## Related

- [HP9006: the server HTML could not be captured](https://hydration.jscrate.dev/docs/issues/hp9006)
- [HP1011: React discarded the whole server-rendered page](https://hydration.jscrate.dev/docs/issues/hp1011)
- [HP2007: uncaught error while loading the page](https://hydration.jscrate.dev/docs/issues/hp2007)
- [How the page is captured](https://hydration.jscrate.dev/docs/how-it-works)
- [Route options](https://hydration.jscrate.dev/docs/routes)
