question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

UnhandledPromiseRejectionWarning: Error: Failed to launch browser!

See original GitHub issue

First of all, thanks for the work on this project! The prospect of a more platform-agnostic alternative to Puppeteer is exciting.

I’m trying to run the example project locally and ran into an issue, hoping maybe someone can point me in the right direction.

The issue

I have a file, test.ts:

const pw = require('playwright');

(async () => {
  const browser = await pw.firefox.launch({ headless: false }); // 'webkit', 'chromium', 'firefox'
  const context = await browser.newContext();
  const page = await context.newPage();

  await page.goto('https://www.example.com/');
  await page.screenshot({ path: 'example.png' });

  await browser.close();
})();

When I run node test.ts I get the following error:

 UnhandledPromiseRejectionWarning: Error: Failed to launch browser!


TROUBLESHOOTING: https://github.com/Microsoft/playwright/blob/master/docs/troubleshooting.md

    at onClose (/mnt/c/Users/joshs/repos/Bullet/api/node_modules/playwright-core/lib/server/processLauncher.js:135:20)
    at Interface.helper_1.helper.addEventListener (/mnt/c/Users/joshs/repos/Bullet/api/node_modules/playwright-core/lib/server/processLauncher.js:128:65)
    at Interface.emit (events.js:202:15)
    at Interface.close (readline.js:395:8)
    at Socket.onend (readline.js:173:10)
    at Socket.emit (events.js:202:15)
    at endReadableNT (_stream_readable.js:1129:12)
    at processTicksAndRejections (internal/process/next_tick.js:76:17)
  -- ASYNC --
    at FFPlaywright.<anonymous> (/mnt/c/Users/joshs/repos/Bullet/api/node_modules/playwright-core/lib/helper.js:54:23)
    at FFPlaywright.launch (/mnt/c/Users/joshs/repos/Bullet/api/node_modules/playwright-core/lib/server/ffPlaywright.js:63:35)
    at FFPlaywright.<anonymous> (/mnt/c/Users/joshs/repos/Bullet/api/node_modules/playwright-core/lib/helper.js:55:31)
    at /mnt/c/Users/joshs/repos/Bullet/api/test.ts:4:36
    at Object.<anonymous> (/mnt/c/Users/joshs/repos/Bullet/api/test.ts:12:3)
    at Module._compile (internal/modules/cjs/loader.js:734:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:745:10)
    at Module.load (internal/modules/cjs/loader.js:626:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:566:12)
    at Function.Module._load (internal/modules/cjs/loader.js:558:3)    
  -- ASYNC --
    at FFPlaywright.<anonymous> (/mnt/c/Users/joshs/repos/Bullet/api/node_modules/playwright-core/lib/helper.js:54:23)
    at /mnt/c/Users/joshs/repos/Bullet/api/test.ts:4:36
    at Object.<anonymous> (/mnt/c/Users/joshs/repos/Bullet/api/test.ts:12:3)
    at Module._compile (internal/modules/cjs/loader.js:734:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:745:10)
    at Module.load (internal/modules/cjs/loader.js:626:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:566:12)
    at Function.Module._load (internal/modules/cjs/loader.js:558:3)    
    at Function.Module.runMain (internal/modules/cjs/loader.js:797:12) 
    at executeUserCode (internal/bootstrap/node.js:526:15)
(node:9422) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:9422) [DEP0018] DeprecationWarning: Unhandled promise rejections 
are deprecated. In the future, promise rejections that are not handled 
will terminate the Node.js process with a non-zero exit code.

What I’m running

I’m running WSL on Windows 10, Node 11.9.0.

What I’ve tried

I had similar code integrated more deeply into an application I’m working on. I pulled the code out into the simplest reproducible case I could, which is the code above.

I’ve tried switching between firefox, chromium, and webkit. I’ve also tried setting headless to false.

Any help or guidance you might be able to offer is appreciated!

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:9 (3 by maintainers)

github_iconTop GitHub Comments

3reactions
tyler-graham-ckcommented, Feb 13, 2020

In the meantime it appears that running node ./node_modules/playwright/install.js before executing your tests will download the binaries if necessary

2reactions
JoelEinbindercommented, Jan 23, 2020

Thanks for joining us on the bleeding edge!

Did you run both npm install and node test.ts from within WSL? Installing from windows but running from within WSL, or vice versa, would probably cause this error.

Assuming your WSL is Ubuntu based, you probably need to get Chrome’s dependencies. It looks like we are missing the list of what those dependencies actually are, but I’d try

sudo apt install \
    gconf-service \
    libasound2 \
    libatk1.0-0 \
    libatk-bridge2.0-0 \
    libc6 \
    libcairo2 \
    libcups2 \
    libdbus-1-3 \
    libexpat1 \
    libfontconfig1 \
    libgcc1 \
    libgconf-2-4 \
    libgdk-pixbuf2.0-0 \
    libglib2.0-0 \
    libgtk-3-0 \
    libnspr4 \
    libpango-1.0-0 \
    libpangocairo-1.0-0 \
    libstdc++6 \
    libx11-6 \
    libx11-xcb1 \
    libxcb1 \
    libxcomposite1 \
    libxcursor1 \
    libxdamage1 \
    libxext6 \
    libxfixes3 \
    libxi6 \
    libxrandr2 \
    libxrender1 \
    libxss1 \
    libxtst6 \
    ca-certificates \
    fonts-liberation \
    libappindicator1 \
    libnss3 \
    lsb-release \
    xdg-utils \
    wget

You can also launch with the dumpio: true option, to see if there is something helpful being logged by the browser itself.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Error: Failed to launch the browser process puppeteer
What worked for me was: let browser = await puppeteer.launch({ executablePath: '/usr/bin/chromium-browser', args: [ '--disable-gpu', '--disable ...
Read more >
Error: Failed to launch the browser process! spawn chrome ...
js:63:19) (node:2839) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async ...
Read more >
Internal browser error: Failed to launch the browser process!
Internal browser error: Failed to launch the browser process!
Read more >
Fix this error when using Puppeteer on Lambda - YouTube
Failed to launch the browser process - Fix this error when using Puppeteer on ... with chrome-aws-lambda, you are likely seeing this error....
Read more >
Puppeteer - Failed to launch the browser process! - DietPi
Puppeteer - Failed to launch the browser process! ... There seems to be a syntax error in one of the script you are...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found