<p dir="auto"><strong>Context:</strong></p>
<ul dir="auto">
<li>Playwright Version: 1.0.2</li>
<li>Operating System: Windows 10</li>
<li>Node version: 13.12, 14.0, 14.2</li>
<li>Browser: All</li>
</ul>
<p dir="auto"><strong>Code Snippet</strong></p>
<p dir="auto">Using the snippet from getting started:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="const { chromium, firefox, webkit } = require('playwright');

(async () =&gt; {
  try {
    const browser = await chromium.launch();
    // const browser = await firefox.launch();
    // const browser = await webkit.launch();
    const page = await browser.newPage();
    await page.goto('http://whatsmyuseragent.org/');
    await page.screenshot({ path: `example.png` });
    await browser.close();
  } catch (err) {
    console.error(err);
  }
})();"><pre class="notranslate"><span class="pl-k">const</span> <span class="pl-kos">{</span> chromium<span class="pl-kos">,</span> firefox<span class="pl-kos">,</span> webkit <span class="pl-kos">}</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'playwright'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span>
  <span class="pl-k">try</span> <span class="pl-kos">{</span>
    <span class="pl-k">const</span> <span class="pl-s1">browser</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-s1">chromium</span><span class="pl-kos">.</span><span class="pl-en">launch</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-c">// const browser = await firefox.launch();</span>
    <span class="pl-c">// const browser = await webkit.launch();</span>
    <span class="pl-k">const</span> <span class="pl-s1">page</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-s1">browser</span><span class="pl-kos">.</span><span class="pl-en">newPage</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-k">await</span> <span class="pl-s1">page</span><span class="pl-kos">.</span><span class="pl-en">goto</span><span class="pl-kos">(</span><span class="pl-s">'http://whatsmyuseragent.org/'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-k">await</span> <span class="pl-s1">page</span><span class="pl-kos">.</span><span class="pl-en">screenshot</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">path</span>: <span class="pl-s">`example.png`</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-k">await</span> <span class="pl-s1">browser</span><span class="pl-kos">.</span><span class="pl-en">close</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">error</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-kos">}</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Describe the bug</strong><br>
In an existing project (that had Cypress installed, not sure if that's relevant), I ran <code class="notranslate">npm i playwright</code> (in Windows Terminal/PowerShell), then ran <code class="notranslate">npm audit fix</code> (I got distracted) and noticed that Cypress re-ran some things. Then I ran the snippet above, and it failed for all three browsers.</p>
<p dir="auto">I uninstalled Cypress, deleted <code class="notranslate">package-lock.json</code> and <code class="notranslate">node_modules</code> and ran <code class="notranslate">npm i</code> again. Still all three failed. I switched from Node 14.0 to 13.12 (using <a href="https://github.com/coreybutler/nvm-windows">nvm windows</a>, if that's relevant) and tried again, all three failed, switched to Node 14.2 and now webkit and firefox work (although I admit I'm maybe changing more than one variable between attempts).</p>
<p dir="auto">My directory <code class="notranslate">C:\Users\david\AppData\Local\ms-playwright\chromium-764964\chrome-win</code> contains only a single file, <code class="notranslate">84.0.4135.0.manifest</code>. Its contents are:</p>
<div class="highlight highlight-text-xml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;assembly
  xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'&gt;
  &lt;assemblyIdentity
      name='84.0.4135.0'
      version='84.0.4135.0'
      type='win32'/&gt;
  &lt;file name='chrome_elf.dll'/&gt;
&lt;/assembly&gt;"><pre class="notranslate">&lt;<span class="pl-ent">assembly</span>
  <span class="pl-e">xmlns</span>=<span class="pl-s"><span class="pl-pds">'</span>urn:schemas-microsoft-com:asm.v1<span class="pl-pds">'</span></span> <span class="pl-e">manifestVersion</span>=<span class="pl-s"><span class="pl-pds">'</span>1.0<span class="pl-pds">'</span></span>&gt;
  &lt;<span class="pl-ent">assemblyIdentity</span>
      <span class="pl-e">name</span>=<span class="pl-s"><span class="pl-pds">'</span>84.0.4135.0<span class="pl-pds">'</span></span>
      <span class="pl-e">version</span>=<span class="pl-s"><span class="pl-pds">'</span>84.0.4135.0<span class="pl-pds">'</span></span>
      <span class="pl-e">type</span>=<span class="pl-s"><span class="pl-pds">'</span>win32<span class="pl-pds">'</span></span>/&gt;
  &lt;<span class="pl-ent">file</span> <span class="pl-e">name</span>=<span class="pl-s"><span class="pl-pds">'</span>chrome_elf.dll<span class="pl-pds">'</span></span>/&gt;
&lt;/<span class="pl-ent">assembly</span>&gt;</pre></div>
<p dir="auto">I have Chrome and Chrome Canary (and Edge and Edge Canary) installed on my machine, not sure if that makes a difference.</p>
<p dir="auto">With Node 14.2 I created a brand new project, installed only <code class="notranslate">playwright</code>, and it failed for chromium but works for firefox and webkit.</p>
<p dir="auto">Then I deleted <code class="notranslate">C:\Users\david\AppData\Local\ms-playwright</code> and started all over again with Node 14.2 and everything worked. This seems to indicate that during install something is checking if the <code class="notranslate">ms-playwright</code> directory is there, but not checking that its contents are correct.</p>
<p dir="auto">Lastly, I went back to how (I thought) I started out. Node 13.2, deleted <code class="notranslate">C:\Users\david\AppData\Local\ms-playwright</code>, and ran <code class="notranslate">npm i playwright</code> again and everything worked fine. So after all that I can't pinpoint a specific scenario, but hopefully some of the above is useful in ironing out install kinks.</p>
<p dir="auto">May I suggest that when running, you check that the correct assets are available and install them if necessary?</p>
<p dir="auto">Maybe this is a duplicate of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="607524129" data-permission-text="Title is private" data-url="https://github.com/microsoft/playwright/issues/1992" data-hovercard-type="issue" data-hovercard-url="/microsoft/playwright/issues/1992/hovercard" href="https://github.com/microsoft/playwright/issues/1992">#1992</a> or <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="607104886" data-permission-text="Title is private" data-url="https://github.com/microsoft/playwright/issues/1988" data-hovercard-type="issue" data-hovercard-url="/microsoft/playwright/issues/1988/hovercard" href="https://github.com/microsoft/playwright/issues/1988">#1988</a> or <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="569610323" data-permission-text="Title is private" data-url="https://github.com/microsoft/playwright/issues/1085" data-hovercard-type="issue" data-hovercard-url="/microsoft/playwright/issues/1085/hovercard" href="https://github.com/microsoft/playwright/issues/1085">#1085</a>, but they seem different enough that I'll create this as a new issue.</p>
<p dir="auto"><strong>Context:</strong></p>
<ul dir="auto">
<li>GOOD Playwright Version: 0.13.0-next.1587452068410</li>
<li>BAD Playwright Version: 0.14.0</li>
<li>Operating System: macOS</li>
</ul>
<p dir="auto"><strong>Describe the bug</strong></p>
<p dir="auto">I'm seeing a <em>lot</em> of <code class="notranslate">Navigation timeout</code> errors on 0.14.0 that don't seem valid. I haven't found a way to reliably repro yet, but I did find one clue. A lot of the time, my error message gets duplicated in this weird way.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="TimeoutError: Navigation timeout exceeded while navigating to https://portfolio.adobe.com/ while navigating to https://portfolio.adobe.com/"><pre lang="ssh" class="notranslate"><code class="notranslate">TimeoutError: Navigation timeout exceeded while navigating to https://portfolio.adobe.com/ while navigating to https://portfolio.adobe.com/
</code></pre></div>
<p dir="auto">I'm going to keep trying to repro, but I figured it was worth posting now anyway in case the double error message was enough. This was also happening to me sometimes in 0.13.0-*, but not nearly as often.</p>