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

# How to Fix "Target Closed" Error in Playwright

> Understand and fix Playwright's Target closed error, usually caused by a browser, context, or tab closing too early or a missing await on a promise.

> [!TIP]
>
> If you're using Playwright for end-to-end testing, you should check out [Playwright Check Suites](https://www.checklyhq.com/docs/detect/synthetic-monitoring/playwright-checks/overview.md) and start testing in production.

Our script can return the sometimes cryptic "Target closed" error. Knowing that the "target" is normally our browser, the [context](https://playwright.dev/docs/browser-contexts) or tab that our script is controlling can help us close in on the cause of the issue.

Example error message:

```sh theme={null}
UnhandledPromiseRejectionWarning: Error: Protocol error: Target closed
```

## Possible causes

* **Obvious possible cause:** the browser, context or tab is being closed at the wrong time in the script.
* **Not-so-obvious possible cause:** promises are not being handled correctly, e.g.:

1. Forgetting an `await` so that the `browser.close()` executes before your command has terminated.
2. [Wrong foreach usage](https://github.com/babel/babel/issues/909): [forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) expects a synchronous function, so use a [for-of loop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) if you are using `await`.

> Note that this list neither is nor aims to be complete: additional possible causes most likely exist for this error.

Bugs don't stop at CI/CD. Why would Playwright? ![Playwright logo](https://mintcdn.com/checkly-422f444a/EbiaOE1oHX_3_YEg/images/icons/playwright.svg?fit=max\&auto=format\&n=EbiaOE1oHX_3_YEg\&q=85\&s=7a281b91e55b4aa6c01bbb63be50402c)

[Sign up](https://app.checklyhq.com/signup) and start using Playwright for end-to-end monitoring with Checkly.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.