## TL;DR

The browser process itself died: crashed, OOM-killed, or closed by a fixture. Check crash logs and memory, isolate the crashing test, and stop sharing browser instances across tests that kill them.

## Error

```text
Error: browser has been closed
```

## Steps

1. Run the failing test alone: `npx playwright test path/to.spec.ts`. Expected: if it passes alone, another test in the file kills the browser.
2. Check CI memory: browser crashes under memory pressure look exactly like this. Add memory to the runner or reduce workers. Expected: crashes stop when memory is sufficient.
3. Look for `browser.close()` in fixtures or helpers that run while other tests still use the browser. Expected: you find the premature close.
4. Enable crash reporting: run with `--reporter=list` and check for `Crashpad` or segfault lines in output. Expected: confirms crash vs close.
5. Bisect: run half the file, then half again, until one test reproduces the crash. Expected: a single crashing test to fix or quarantine.

## When to use

- The error names the browser, not a page or locator.
- Multiple tests fail at once when one crashes.

## When not to use

- `Target closed` (page-level, not browser-level).
- Launch failures before any test runs (browser install issue).

## Tool compatibility

- Playwright 1.30 through latest; Chromium, Firefox, WebKit.

## Variant phrasings

### Playwright browser disconnected

The driver lost the browser pipe; same family of causes.

### Browser crashed during Playwright run

Usually OOM; check runner memory first.

## Why it happens

One browser serves many tests. A crash or close kills everything attached to it, so one bad test poisons the whole file.

## Edge cases

- WebKit is the most crash-prone under memory pressure; give it more headroom or fewer workers.
- Video recording increases memory; disable it while bisecting crashes.
- `--workers=1` hides cross-test interference; the crash may still be a real per-test bug.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_CPgflyfqJauEig4qtxa8Jw
