Prototype JSHandle is disposed!

How to fix the Puppeteer error: Prototype JSHandle is disposed!


Error

Prototype JSHandle is disposed!

What it means

Puppeteer raised this from its page operations code. In practice, it usually means your script reached a browser, page, frame, element, or option state that the API cannot use safely.

How to fix it

  • Check the API call that produced the error and validate its options before passing them to Puppeteer.
  • Reduce the script to the smallest failing action, then add waits or state checks around that action.
  • Keep Puppeteer and the browser revision aligned, especially in CI caches and Docker images.

Minimal guard

try {
  // Run the Puppeteer operation that triggers this error.
} catch (error) {
  if (error instanceof Error && error.message.includes("Prototype JSHandle is disposed!")) {
    // Apply the fix above, then retry or fail with a clearer message.
  }
  throw error;
}

Keep Reading

Puppeteer Guides

All Guides →