javascriptnode.jspuppeteerpuppeteer-cluster

Puppeteer Cluster Unable to get browser page


I'm trying to run the puppeteer cluster docs example but it keeps giving me "Error: Unable to get browser page".

This is the debugging log:

  puppeteer-cluster: Cluster Launching +0ms
  puppeteer-cluster: Worker Starting #0 +0ms
  puppeteer-cluster: Worker Error getting browser page (try: 0), message: this.browser.createIncognitoBrowserContext is not a function +16ms
  puppeteer-cluster: SingleBrowserImpl Repair requested +0ms
  puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
  puppeteer-cluster: Worker Starting #1 +1ms
  puppeteer-cluster: Worker Error getting browser page (try: 0), message: this.browser.createIncognitoBrowserContext is not a function +330ms
  puppeteer-cluster: SingleBrowserImpl Repair requested +331ms
  puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
  puppeteer-cluster: Worker Error getting browser page (try: 1), message: this.browser.createIncognitoBrowserContext is not a function +1ms
  puppeteer-cluster: SingleBrowserImpl Repair requested +1ms
  puppeteer-cluster: Worker Error getting browser page (try: 1), message: this.browser.createIncognitoBrowserContext is not a function +302ms
  puppeteer-cluster: SingleBrowserImpl Repair requested +302ms
  puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
  puppeteer-cluster: Worker Error getting browser page (try: 2), message: this.browser.createIncognitoBrowserContext is not a function +1ms
  puppeteer-cluster: SingleBrowserImpl Repair requested +1ms
  puppeteer-cluster: Worker Error getting browser page (try: 2), message: this.browser.createIncognitoBrowserContext is not a function +316ms
  puppeteer-cluster: SingleBrowserImpl Repair requested +316ms
  puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
  puppeteer-cluster: Worker Error getting browser page (try: 3), message: this.browser.createIncognitoBrowserContext is not a function +1ms
  puppeteer-cluster: SingleBrowserImpl Repair requested +1ms
  puppeteer-cluster: Worker Error getting browser page (try: 3), message: this.browser.createIncognitoBrowserContext is not a function +312ms
  puppeteer-cluster: SingleBrowserImpl Repair requested +312ms
  puppeteer-cluster: SingleBrowserImpl Starting repair +0ms

This is until try 9.

Run with Node.js v20.10.0

Edit:

Since it seems like more than one person can't read the first sentence I wrote, here's the code:

const { Cluster } = require('puppeteer-cluster');

(async () => {
  const cluster = await Cluster.launch({
    concurrency: Cluster.CONCURRENCY_CONTEXT,
    maxConcurrency: 2,
  });

  await cluster.task(async ({ page, data: url }) => {
    await page.goto(url);
    const screen = await page.screenshot();
    // Store screenshot, do something else
  });

  cluster.queue('http://www.google.com/');
  cluster.queue('http://www.wikipedia.org/');
  // many more pages

  await cluster.idle();
  await cluster.close();
})();

Solution

  • The latest version of the puppeteer-cluster package (v0.23.0) does not support the latest version of the puppeteer package (v22.0.0) due to breaking changes.
    As you can see, the browser context has been renamed in the latest version of the puppeteer package:

    https://github.com/puppeteer/puppeteer/issues/11834

    To solve, until the puppeteer-cluster package is updated, I recommend using an older version of the puppeteer package ( <= v21.11.0):

    npm install puppeteer@21.11.0
    

    OR

    yarn add puppeteer@21.11.0