table of contents Table of contents

How to Fix "Target Closed" Error in Playwright

On this page

Our script can return the sometimes cryptic “Target closed” error. Knowing that the “target” is normally our browser, the context or tab that our script is controlling can help us close in on the cause of the issue.

Example error message:

Terminal
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: forEach expects a synchronous function, so use a for-of loop 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.


Last updated on December 2, 2024. You can contribute to this documentation by editing this page on Github