<h3 dir="auto">System info</h3>
<ul dir="auto">
<li>Playwright Version: [v1.33.0]</li>
<li>Operating System: [M1 macOS 13.3.1 (a)]</li>
<li>Browser: [WebKit]</li>
<li>Other info:</li>
</ul>
<p dir="auto">This is sort of a 2 parter but I believe they are part of the same issue. When I run the test with Safari desktop, the test always fails because the after hook cannot close the browser context. When I run the test in debug mode I get the segmentation fault error. It doesn't happen every time but at least half the time it does.. The app I am testing should be in full-screen the whole time which I think contributes to this error. The test SHOULD be running headless but my test always runs Safari with the browser open. The example tests run Safari in headless mode without the browser. I have provided a repro repo and shown my files below. Lastly, I have tried increasing the timeout and that did not change anything.</p>
<p dir="auto">I tried another test (different website) and it passes and runs headless no problem. I believe the key factor here may be that the browser becomes full-screen.</p>
<p dir="auto">Error with <code class="notranslate">npx playwright test</code>:<br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/80180474/236295555-192f47bd-c895-4dc6-ba9a-1e23d41bb36e.png"><img src="https://user-images.githubusercontent.com/80180474/236295555-192f47bd-c895-4dc6-ba9a-1e23d41bb36e.png" alt="Screenshot 2023-05-04 at 11 27 11 AM" style="max-width: 100%;"></a></p>
<p dir="auto">Error with <code class="notranslate">npx playwright test --debug</code>:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="Error: browserContext.close: Browser closed.
==================== Browser output: ====================
&lt;launching&gt; /Users/philipziolkowski/Library/Caches/ms-playwright/webkit-1837/pw_run.sh --inspector-pipe --no-startup-window
&lt;launched&gt; pid=36374
[pid=36374][err] Inspection is enabled by default for process or parent application with 'com.apple.security.get-task-allow' entitlement linked against old SDK. Use `inspectable` API to enable inspection on newer SDKs.
[pid=36374][err] /Users/philipziolkowski/Library/Caches/ms-playwright/webkit-1837/pw_run.sh: line 3: 36379 Bus error: 10           DYLD_FRAMEWORK_PATH=&quot;$DYLIB_PATH&quot; DYLD_LIBRARY_PATH=&quot;$DYLIB_PATH&quot; &quot;$PLAYWRIGHT&quot; &quot;$@&quot;"><pre class="notranslate">Error: browserContext.close: Browser closed.
==================== Browser output: ====================
<span class="pl-k">&lt;</span>launching<span class="pl-k">&gt;</span> /Users/philipziolkowski/Library/Caches/ms-playwright/webkit-1837/pw_run.sh --inspector-pipe --no-startup-window
<span class="pl-k">&lt;</span>launched<span class="pl-k">&gt;</span> pid=36374
[pid<span class="pl-k">=</span>36374][err] Inspection is enabled by default <span class="pl-k">for</span> process or parent application with <span class="pl-s"><span class="pl-pds">'</span>com.apple.security.get-task-allow<span class="pl-pds">'</span></span> entitlement linked against old SDK. Use <span class="pl-s"><span class="pl-pds">`</span>inspectable<span class="pl-pds">`</span></span> API to <span class="pl-c1">enable</span> inspection on newer SDKs.
[pid<span class="pl-k">=</span>36374][err] /Users/philipziolkowski/Library/Caches/ms-playwright/webkit-1837/pw_run.sh: line 3: 36379 Bus error: 10           DYLD_FRAMEWORK_PATH=<span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$DYLIB_PATH</span><span class="pl-pds">"</span></span> DYLD_LIBRARY_PATH=<span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$DYLIB_PATH</span><span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$PLAYWRIGHT</span><span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$@</span><span class="pl-pds">"</span></span></pre></div>
<h3 dir="auto">Source code</h3>
<ul dir="auto">
<li>[x ] I provided exact source code that allows reproducing the issue locally.</li>
</ul>




<p dir="auto"><strong>Link to the GitHub repository with the repro</strong></p>
<p dir="auto">[https://github.com/Zio-4/playwright-repro]</p>
<p dir="auto">or</p>
<p dir="auto"><strong>Config file</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// playwright.config.ts
module.exports = defineConfig({
  testDir: './tests/e2e',
  /* Run tests in files in parallel */
  fullyParallel: true,
  /* Fail the build on CI if you accidentally left test.only in the source code. */
  forbidOnly: !!process.env.CI,
  /* Retry on CI only */
  retries: process.env.CI ? 2 : 0,
  /* Opt out of parallel tests on CI. */
  workers: process.env.CI ? 1 : undefined,
  /* Reporter to use. See https://playwright.dev/docs/test-reporters */
  reporter: 'html',
  /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
  use: {
    /* Base URL to use in actions like `await page.goto('/')`. */
    // baseURL: 'http://127.0.0.1:3000',

    /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
    trace: 'on-first-retry',
  },

  /* Configure projects for major browsers */
  projects: [
    {
      name: 'webkit',
      use: { ...devices['Desktop Safari'] },
    },

});"><pre class="notranslate"><span class="pl-c">// playwright.config.ts</span>
<span class="pl-smi">module</span><span class="pl-kos">.</span><span class="pl-c1">exports</span> <span class="pl-c1">=</span> <span class="pl-en">defineConfig</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
  <span class="pl-c1">testDir</span>: <span class="pl-s">'./tests/e2e'</span><span class="pl-kos">,</span>
  <span class="pl-c">/* Run tests in files in parallel */</span>
  <span class="pl-c1">fullyParallel</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
  <span class="pl-c">/* Fail the build on CI if you accidentally left test.only in the source code. */</span>
  <span class="pl-c1">forbidOnly</span>: <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">.</span><span class="pl-c1">CI</span><span class="pl-kos">,</span>
  <span class="pl-c">/* Retry on CI only */</span>
  <span class="pl-c1">retries</span>: <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">.</span><span class="pl-c1">CI</span> ? <span class="pl-c1">2</span> : <span class="pl-c1">0</span><span class="pl-kos">,</span>
  <span class="pl-c">/* Opt out of parallel tests on CI. */</span>
  <span class="pl-c1">workers</span>: <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">.</span><span class="pl-c1">CI</span> ? <span class="pl-c1">1</span> : <span class="pl-c1">undefined</span><span class="pl-kos">,</span>
  <span class="pl-c">/* Reporter to use. See https://playwright.dev/docs/test-reporters */</span>
  <span class="pl-c1">reporter</span>: <span class="pl-s">'html'</span><span class="pl-kos">,</span>
  <span class="pl-c">/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */</span>
  <span class="pl-c1">use</span>: <span class="pl-kos">{</span>
    <span class="pl-c">/* Base URL to use in actions like `await page.goto('/')`. */</span>
    <span class="pl-c">// baseURL: 'http://127.0.0.1:3000',</span>

    <span class="pl-c">/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */</span>
    <span class="pl-c1">trace</span>: <span class="pl-s">'on-first-retry'</span><span class="pl-kos">,</span>
  <span class="pl-kos">}</span><span class="pl-kos">,</span>

  <span class="pl-c">/* Configure projects for major browsers */</span>
  <span class="pl-c1">projects</span>: <span class="pl-kos">[</span>
    <span class="pl-kos">{</span>
      <span class="pl-c1">name</span>: <span class="pl-s">'webkit'</span><span class="pl-kos">,</span>
      <span class="pl-c1">use</span>: <span class="pl-kos">{</span> ...<span class="pl-s1">devices</span><span class="pl-kos">[</span><span class="pl-s">'Desktop Safari'</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><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Test file (self-contained)</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="test('should pass intros', async ({ page }) =&gt; {
    await page.goto('https://roar-swr-demo.web.app/');
    await page.getByRole('button', { name: 'Continue' }).click();
    await page.getByText('Press ANY KEY to continue').press('ArrowRight');
    await page.getByText('Press ANY KEY to continue').press('ArrowRight');
    await page.getByText('Press ANY KEY to practice').press('ArrowRight');

    const arrows = page.getByAltText('arrow-key')
    expect(arrows).toBeDefined()
});"><pre class="notranslate"><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s">'should pass intros'</span><span class="pl-kos">,</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">{</span> page <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">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">'https://roar-swr-demo.web.app/'</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">getByRole</span><span class="pl-kos">(</span><span class="pl-s">'button'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">name</span>: <span class="pl-s">'Continue'</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">click</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">getByText</span><span class="pl-kos">(</span><span class="pl-s">'Press ANY KEY to continue'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">press</span><span class="pl-kos">(</span><span class="pl-s">'ArrowRight'</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">getByText</span><span class="pl-kos">(</span><span class="pl-s">'Press ANY KEY to continue'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">press</span><span class="pl-kos">(</span><span class="pl-s">'ArrowRight'</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">getByText</span><span class="pl-kos">(</span><span class="pl-s">'Press ANY KEY to practice'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">press</span><span class="pl-kos">(</span><span class="pl-s">'ArrowRight'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

    <span class="pl-k">const</span> <span class="pl-s1">arrows</span> <span class="pl-c1">=</span> <span class="pl-s1">page</span><span class="pl-kos">.</span><span class="pl-en">getByAltText</span><span class="pl-kos">(</span><span class="pl-s">'arrow-key'</span><span class="pl-kos">)</span>
    <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s1">arrows</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeDefined</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>Steps</strong></p>
<ul dir="auto">
<li>Created a new app with <code class="notranslate">npx create-roar-app@latest my-roar-app</code>  (<a href="https://yeatmanlab.github.io/create-roar-app/developer-guide/installation/" rel="nofollow">https://yeatmanlab.github.io/create-roar-app/developer-guide/installation/</a>)</li>
<li>installed playwright with <code class="notranslate">npm init playwright@latest</code></li>
<li>added e2e folder with test</li>
<li>ran <code class="notranslate">npx playwright test</code> and <code class="notranslate">npx playwright test --debug</code></li>
</ul>
<p dir="auto"><strong>Expected</strong></p>
<p dir="auto">[Describe expected behavior]<br>
For the normal test command I expect the test to pass (and run headless) and close the browser context.<br>
For the debug test command I expect the test to pass and close the browser context.</p>
<p dir="auto"><strong>Actual</strong><br>
For the normal test command, the test runs headfull (should be headless) and hangs at the end until the timeout occurs. It is in full-screen but the same happens out of full-screen.</p>
<p dir="auto">For the debug test command the test passes and hangs on a black screen (due to being full-screen). Pressing escape runs the html report and shows the seg fault error.</p>
<h3 dir="auto">System info</h3>
<ul dir="auto">
<li>Playwright Version: v1.32.1</li>
<li>Operating System: macOS 13.2</li>
<li>Browser: Chromium</li>
<li>Other info:</li>
</ul>
<h3 dir="auto">Source code</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I provided exact source code that allows reproducing the issue locally.</li>
</ul>
<p dir="auto"><a href="https://github.com/pdyck/short-link-management/blob/main/playwright.config.ts">https://github.com/pdyck/short-link-management/blob/main/playwright.config.ts</a></p>




<p dir="auto"><strong>Config file</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// playwright.config.ts
import { defineConfig, devices } from &quot;@playwright/test&quot;;

const baseURL = &quot;http://localhost:3000&quot;;

export default defineConfig({
  timeout: 30 * 1000,
  testDir: &quot;./tests&quot;,
  testMatch: /.*\.e2e\.tsx?/,
  retries: 2,

  webServer: {
    command: &quot;yarn start&quot;,
    timeout: 10 * 1000,
    url: baseURL,
    reuseExistingServer: false,
  },

  use: {
    baseURL,
    trace: &quot;retry-with-trace&quot;,
  },

  projects: [
    {
      name: &quot;chromium&quot;,
      use: { ...devices[&quot;Desktop Chrome&quot;] },
    },
  ],
});
"><pre class="notranslate"><span class="pl-c">// playwright.config.ts</span>
<span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">defineConfig</span><span class="pl-kos">,</span> <span class="pl-s1">devices</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"@playwright/test"</span><span class="pl-kos">;</span>

<span class="pl-k">const</span> <span class="pl-s1">baseURL</span> <span class="pl-c1">=</span> <span class="pl-s">"http://localhost:3000"</span><span class="pl-kos">;</span>

<span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-en">defineConfig</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
  <span class="pl-c1">timeout</span>: <span class="pl-c1">30</span> <span class="pl-c1">*</span> <span class="pl-c1">1000</span><span class="pl-kos">,</span>
  <span class="pl-c1">testDir</span>: <span class="pl-s">"./tests"</span><span class="pl-kos">,</span>
  <span class="pl-c1">testMatch</span>: <span class="pl-pds"><span class="pl-c1">/</span>.<span class="pl-c1">*</span><span class="pl-cce">\.</span>e2e<span class="pl-cce">\.</span>tsx?<span class="pl-c1">/</span></span><span class="pl-kos">,</span>
  <span class="pl-c1">retries</span>: <span class="pl-c1">2</span><span class="pl-kos">,</span>

  <span class="pl-c1">webServer</span>: <span class="pl-kos">{</span>
    <span class="pl-c1">command</span>: <span class="pl-s">"yarn start"</span><span class="pl-kos">,</span>
    <span class="pl-c1">timeout</span>: <span class="pl-c1">10</span> <span class="pl-c1">*</span> <span class="pl-c1">1000</span><span class="pl-kos">,</span>
    <span class="pl-c1">url</span>: <span class="pl-s1">baseURL</span><span class="pl-kos">,</span>
    <span class="pl-c1">reuseExistingServer</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span>
  <span class="pl-kos">}</span><span class="pl-kos">,</span>

  <span class="pl-c1">use</span>: <span class="pl-kos">{</span>
    baseURL<span class="pl-kos">,</span>
    <span class="pl-c1">trace</span>: <span class="pl-s">"retry-with-trace"</span><span class="pl-kos">,</span>
  <span class="pl-kos">}</span><span class="pl-kos">,</span>

  <span class="pl-c1">projects</span>: <span class="pl-kos">[</span>
    <span class="pl-kos">{</span>
      <span class="pl-c1">name</span>: <span class="pl-s">"chromium"</span><span class="pl-kos">,</span>
      <span class="pl-c1">use</span>: <span class="pl-kos">{</span> ...<span class="pl-s1">devices</span><span class="pl-kos">[</span><span class="pl-s">"Desktop Chrome"</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><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Test file (self-contained)</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import { test, expect } from &quot;@playwright/test&quot;;

test(&quot;has title&quot;, async ({ page }) =&gt; {
    await page.goto(&quot;/&quot;);

    await expect(page).toHaveTitle(/Test/);
});"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">test</span><span class="pl-kos">,</span> <span class="pl-s1">expect</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"@playwright/test"</span><span class="pl-kos">;</span>

<span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s">"has title"</span><span class="pl-kos">,</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">{</span> page <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">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">"/"</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

    <span class="pl-k">await</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s1">page</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toHaveTitle</span><span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span>Test<span class="pl-c1">/</span></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>Steps</strong></p>
<ul dir="auto">
<li><code class="notranslate">yarn playwright test</code></li>
</ul>
<p dir="auto"><strong>Expected</strong></p>
<p dir="auto">The web server starts and the tests run.</p>
<p dir="auto"><strong>Actual</strong></p>
<p dir="auto">Playwright pings the <code class="notranslate">baseURL</code> until timeout and only starts the web server after that. Tested it with timeouts from 10s to 120s.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ DEBUG=pw:webserver yarn playwright test
yarn run v1.22.19
$ .../node_modules/.bin/playwright test
  pw:webserver HTTP GET: http://localhost:3000/ +0ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:3000 +309ms
  pw:webserver Starting WebServer process yarn start... +0ms
  pw:webserver Process started +16ms
  pw:webserver Waiting for availability... +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +0ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:3000 +309ms
  pw:webserver Waiting 100ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +101ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +967ms
  pw:webserver Waiting 250ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +253ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +616ms
  pw:webserver Waiting 500ms +1ms
  pw:webserver HTTP GET: http://localhost:3000/ +501ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +617ms
  pw:webserver Waiting 1000ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +1s
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +615ms
  pw:webserver Waiting 1000ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +1s
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +615ms
  pw:webserver Waiting 1000ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +1s
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +618ms
  pw:webserver Waiting 1000ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +1s
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +615ms
  pw:webserver Waiting 1000ms +0ms
[WebServer] $ next start
[WebServer] ready - started server on 0.0.0.0:3000, url: http://localhost:3000
[WebServer] info  - Loaded env from .../.env.local
Error: Timed out waiting 10000ms from config.webServer."><pre class="notranslate"><code class="notranslate">$ DEBUG=pw:webserver yarn playwright test
yarn run v1.22.19
$ .../node_modules/.bin/playwright test
  pw:webserver HTTP GET: http://localhost:3000/ +0ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:3000 +309ms
  pw:webserver Starting WebServer process yarn start... +0ms
  pw:webserver Process started +16ms
  pw:webserver Waiting for availability... +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +0ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:3000 +309ms
  pw:webserver Waiting 100ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +101ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +967ms
  pw:webserver Waiting 250ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +253ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +616ms
  pw:webserver Waiting 500ms +1ms
  pw:webserver HTTP GET: http://localhost:3000/ +501ms
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +617ms
  pw:webserver Waiting 1000ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +1s
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +615ms
  pw:webserver Waiting 1000ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +1s
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +615ms
  pw:webserver Waiting 1000ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +1s
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +618ms
  pw:webserver Waiting 1000ms +0ms
  pw:webserver HTTP GET: http://localhost:3000/ +1s
  pw:webserver Error while checking if http://localhost:3000/ is available: connect ECONNREFUSED ::1:80 +615ms
  pw:webserver Waiting 1000ms +0ms
[WebServer] $ next start
[WebServer] ready - started server on 0.0.0.0:3000, url: http://localhost:3000
[WebServer] info  - Loaded env from .../.env.local
Error: Timed out waiting 10000ms from config.webServer.
</code></pre></div>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1350990568" data-permission-text="Title is private" data-url="https://github.com/microsoft/playwright/issues/16834" data-hovercard-type="issue" data-hovercard-url="/microsoft/playwright/issues/16834/hovercard" href="https://github.com/microsoft/playwright/issues/16834">#16834</a></p>