cypress: Error: WebSocket connection closed (in cypress 13.6)

Current behavior

Cypress reports Error: WebSocket connection closed and then stops running tests and cypress.run returns with

{
  "failures": 1,
  "message": "Could not find Cypress test run results"
}

More context:

  • This happens sporadically, in the same spot, for a few projects. Maybe ~10% of the time for those projects.
  • This began after upgrading from Cypress 12.17 -> 13.6.1. Before/after volume of this error message: image

Desired behavior

Don’t throw errors. Or give more information as to why the errors are happening.

Test code to reproduce

not sure how to reproduce; happens sporadically but consistently

Cypress Version

13.6.1

Node version

18.16.1

Operating System

linux/docker (CI/CD)

Debug Logs

No response

Other

No response

About this issue

  • Original URL
  • State: closed
  • Created 7 months ago
  • Reactions: 26
  • Comments: 62 (18 by maintainers)

Commits related to this issue

Most upvoted comments

We are intending to look into this in our upcoming sprint.

Thank you everyone for all of your input, especially with stack traces and which version of Cypress. I believe I have identified the source of this error, and will be working on fixing it.

According to stack traces, the uncaught exception is being thrown from _handleConnectionClose, which is a method that the chrome-remote-interface package implements in order to drain all callbacks pending on a CRI connection with an error when the connection closes and callbacks are pending. One of the changes we made from 13.5.1 to 13.6.0 was to upgrade the chrome-remote-interface package to 0.33 from 0.31.3 in order to accommodate larger message payloads.

It looks like chrome-remote-interface updated the _handleConnectionClose method, changing the values it sends to pending callbacks when the websocket connection closes. I’m currently digging into our own code that interfaces with this module, to determine what we need to change on our end to resolve this issue.

I have yet to be able to reproduce this myself, so I cannot yet write regression tests or implement a fix. If the CRI change caused the issue, it may lead to me being able to reproduce this error. However, to expedite this, if anyone can fork https://github.com/cypress-io/cypress-test-tiny or https://github.com/cypress-io/cypress-realworld-app and reproduce the error (even sporadically), that would greatly expedite this process.

I tested on v.13.7.0 and this problem still persist. I updated to v.13.7.0 so that I can fix the cy.screenshoot problem and it did solve it but this web connection closed issue still detected… Please FIX IT ASAP.

@jennifer-shehane we are facing the same issue.

Test code to reproduce not sure how to reproduce; happens sporadically but consistently

Cypress Version 13.3.0 / 13.6.2

Node version 18.15.0

Operating System cypress/base:18.15.0 + browser-tools: circleci/browser-tools@1.4.6 + browser-tools/install-chrome: chrome-version: 119.0.6045.199

Debug Logs No response

Other No response

On Cypress 13.3.0 Screenshot 2024-01-22 at 13 24 57 This happen when the test is finished and the compressing of the video starts.

On Cypress 13.6.2

Screenshot 2024-01-22 at 13 28 58

Again our tests completes, but once its start generating the video failed.

Both cases above are visible only in CircleCI

The websocket errors we are seeing are gone when downgrading to 13.5.x or by disabling videos on 13.6.6, so it definitely seems related

Hi, same issue too: downgraded to 13.5.1.

Having the error, it’s quite annoying, we decided to downgrade to 13.5.x!

We have around 100 cypress tests in our project and after upgrading to any version later than 13.5.1 (our current version) some tests start to fail due to that same issue (websocket disconnect)

I’m not sure if I can find a specific case that causes this but it seems like all tests now have a chance to crash due to this issue

Unfortunately we had to rollback to 13.5.1 until this is fixed

Hi everyone, thank you for the expanded logs!

It looks like this is a combination of things:

  • The chrome-remote-interface package is throwing errors when an in-flight CDP command failed due to the WebSocket being closed. Previously, it simply failed silently.
  • There is a race condition, where certain Chrome DevTools Protocol commands are being sent after Cypress closes out the browser for a given spec. This is most commonly (but not solely!) encountered when using video recording. When video recording, Cypress sends an ACK after we have received a chunk and processed it to indicate that the next chunk can be sent. The ACK for the very last chunk of a spec recording can sometimes be sent after Cypress has closed the browser.

I have a tentative fix in review. I’ve built pre-release packages from that branch. If you would like to try them out, please follow the instructions for using prerelease binaries:

linux x64

npm install https://cdn.cypress.io/beta/npm/13.8.1/linux-x64/cacie/fix/websocket-closed-59a1198c5c1b222d81f33131d680ca08009dde5b/cypress.tgz

linux arm64

npm install https://cdn.cypress.io/beta/npm/13.8.1/linux-arm64/cacie/fix/websocket-closed-59a1198c5c1b222d81f33131d680ca08009dde5b/cypress.tgz

darwin arm64

npm install https://cdn.cypress.io/beta/npm/13.8.1/darwin-arm64/cacie/fix/websocket-closed-59a1198c5c1b222d81f33131d680ca08009dde5b/cypress.tgz

darwin x64

npm install https://cdn.cypress.io/beta/npm/13.8.1/darwin-x64/cacie/fix/websocket-closed-59a1198c5c1b222d81f33131d680ca08009dde5b/cypress.tgz

windows

npm install https://cdn.cypress.io/beta/npm/13.8.1/win32-x64/cacie/fix/websocket-closed-2add9c20e9f9e443e21b2037b1007118ff763c24/cypress.tgz

Thank you again for your patience while we work through this!

@rebel-l Is your error also resolved by downgrading to 13.5.1? I’m having a hard time connecting this Websocket error that would be related to video recording to the 13.6.0 release. But perhaps other types of Websocket errors would show with the 13.6.0 release.

finally I can confirm downgrading ti 13.5.1 works. sorry for the late answer.

i can confirm there has been no decrease in the error for us since upgrading to 13.6.6

@newsuk-apnikolov There are a couple of causes of the websocket error that we can notice from this thread. Yours definitely has something to do with video compression. Some others examples are happening around the time the spec ends/browser closes. We do have this on our radar to investigate further.

A clear way to reproduce 100% of the time would speed up our investigation, but I know it’s mostly intermittent for everyone.

Minimum reproduction for that will probably be just as hard as the websocket one… but i’ll move that to a different issue if it keeps poping up.

Compodoc v1.1.23

info => Serving static files from ././cdn-assets at /
info => Serving static files from ././node_modules/@webcomponents at /
info => Serving static files from ././<repodir>/<project>/src at /
info => Starting manager..
info => Starting preview..
info Addon-docs: using MDX3
info => Using implicit CSS loaders
info => Using angular browser target options from "project:build-storybook"
info => Using angular project with "tsConfig:/home/workflows/workspace/<repodir>/<project>/.storybook/tsconfig.json"
    TypeScript compiler options "target" and "useDefineForClassFields" are set to "ES2022" and "false" respectively by the Angular CLI. To control ECMA version and features use the Browserslist configuration. For more information, see https://angular.io/guide/build#configuring-browser-compatibility
    NOTE: You can set the "target" to "ES2022" in the project's tsconfig to remove this warning.
info => Using default Webpack5 setup
<i> [webpack-dev-middleware] wait until bundle finished
WARN /home/workflows/workspace/<repodir>/<project>/.storybook/main.ts is part of the TypeScript compilation but it's unused.
WARN Add only entry points to the 'files' or 'include' properties in your tsconfig.
WARN DefinePlugin
WARN Conflicting values for 'process.env.NODE_ENV'
  cypress:server:browsers:utils found browsers { browsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122' } ] } +521ms
  cypress:server:browsers:utils searching for browser { nameOrPath: 'chrome', filter: { name: 'chrome', channel: 'stable' }, knownBrowsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122' }, { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '118.0.5993.159', path: '', majorVersion: 118 } ] } +1s
  cypress:server:browsers:utils getBrowsers +29ms
  cypress:server:browsers:utils WebKit is enabled, but there was an error constructing the WebKit browser: { err: Error: Cannot find module 'playwright-webkit' Require stack: - /home/workflows/.cache/Cypress/13.7.3/Cypress/resources/app/packages/server/lib/browsers/utils.ts     at node:internal/modules/cjs/loader:1084:15     at Function._resolveFilename (node:electron/js2c/browser_init:2:116646)     at resolve (node:internal/modules/cjs/helpers:127:19) at Function.resolve (evalmachine.<anonymous>:1:747857) at q (<embedded>:4359:87697) at Object.I [as get] (<embedded>:4359:88532) at H (<embedded>:4450:141618) at Object.W (<embedded>:4450:144324) { code: 'MODULE_NOT_FOUND', requireStack: [ '/home/workflows/.cache/Cypress/13.7.3/Cypress/resources/app/packages/server/lib/browsers/utils.ts' ] } } +1ms
  cypress:server:browsers:utils found browsers { browsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122' } ] } +231ms
  cypress:server:browsers:utils searching for browser { nameOrPath: 'chrome', filter: { name: 'chrome', channel: 'stable' }, knownBrowsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122' }, { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '118.0.5993.159', path: '', majorVersion: 118 } ] } +91ms

tput: No value for $TERM and no -T specified
====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        13.7.3                                                                         │
  │ Browser:        Chrome 122 (headless)                                                          │
  │ Node Version:   v20.11.1 (/usr/local/bin/node)                                                 │
  │ Specs:          1 found (<feature>.component.cy.ts)                               │
  │ Searched:       src/**/*.cy.{js,jsx,ts,tsx}                                                    │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  <feature>.component.cy.ts                                          (1 of 1)
  cypress:server:browsers browsers.kill called with no active instance +0ms
  cypress:server:browsers getBrowserLauncher { browser: { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122', isHeadless: true, isHeaded: false } } +0ms
  cypress:server:browsers opening browser { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122', isHeadless: true, isHeaded: false } +2ms
  cypress:server:browsers:chrome reading chrome preferences... { userDir: '/home/workflows/.config/Cypress/cy/production/browsers/chrome-stable/run-4828', CHROME_PREFERENCE_PATHS: { default: 'Default/Preferences', defaultSecure: 'Default/Secure Preferences', localState: 'Local State' } } +0ms
  cypress:server:browsers:chrome chrome is running headlessly, not installing extension +1ms
  cypress:server:browsers:chrome launching in chrome with debugging port { url: 'http://localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts', args: [ '--test-type', '--ignore-certificate-errors', '--start-maximized', '--silent-debugger-extension-api', '--no-default-browser-check', '--no-first-run', '--noerrdialogs', '--enable-fixed-layout', '--disable-popup-blocking', '--disable-password-generation', '--disable-single-click-autofill', '--disable-prompt-on-repos', '--disable-background-timer-throttling', '--disable-renderer-backgrounding', '--disable-renderer-throttling', '--disable-backgrounding-occluded-windows', '--disable-restore-session-state', '--disable-new-profile-management', '--disable-new-avatar-menu', '--allow-insecure-localhost', '--reduce-security-for-testing', '--enable-automation', '--disable-print-preview', '--disable-component-extensions-with-background-pages', '--disable-device-discovery-notifications', '--autoplay-policy=no-user-gesture-required', '--disable-site-isolation-trials', '--metrics-recording-only', '--disable-prompt-on-repost', '--disable-hang-monitor', '--disable-sync', '--disable-web-resources', '--safebrowsing-disable-download-protection', '--disable-client-side-phishing-detection', '--disable-component-update', "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'", '--disable-default-apps', '--disable-features=Translate,PrivacySandboxSettings4', '--use-fake-ui-for-media-stream', '--use-fake-device-for-media-stream', '--disable-ipc-flooding-protection', '--disable-backgrounding-occluded-window', '--disable-breakpad', '--password-store=basic', '--use-mock-keychain', '--disable-dev-shm-usage', '--enable-precise-memory-info', '--disable-gpu', '--no-sandbox', '--proxy-server=http://localhost:35995', '--disable-web-security', '--allow-running-insecure-content', '--proxy-bypass-list=<-loopback>', '--headless=new', '--window-size=1280,720', '--force-device-scale-factor=1', '--remote-debugging-port=37185', '--remote-debugging-address=127.0.0.1', '--user-data-dir=/home/workflows/.config/Cypress/cy/production/browsers/chrome-stable/run-4828', '--disk-cache-dir=/home/workflows/.config/Cypress/cy/production/browsers/chrome-stable/run-4828/CypressCache' ], port: 37185 } +1ms

  cypress:server:browsers browsers.kill called with no active instance +5m
Timed out waiting for the browser to connect. Retrying...
  cypress:server:browsers browsers.kill called with no active instance +8ms
  cypress:server:browsers getBrowserLauncher { browser: { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122', isHeadless: true, isHeaded: false } } +0ms
  cypress:server:browsers opening browser { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122', isHeadless: true, isHeaded: false } +3ms
  cypress:server:browsers:chrome reading chrome preferences... { userDir: '/home/workflows/.config/Cypress/cy/production/browsers/chrome-stable/run-4828', CHROME_PREFERENCE_PATHS: { default: 'Default/Preferences', defaultSecure: 'Default/Secure Preferences', localState: 'Local State' } } +5m
  cypress:server:browsers:browser-cri-client error finding browser target, maybe retrying { delay: 100, err: Error: socket hang up     at connResetException (node:internal/errors:720:14)     at Socket.socketCloseListener (node:_http_client:474:25)     at Socket.emit (node:events:526:35)     at TCP.<anonymous> (node:net:323:12) { code: 'ECONNRESET' } } +0ms
  cypress:server:browsers:chrome chrome is running headlessly, not installing extension +33ms
  cypress:server:browsers:chrome cleaning up unclean exit status +5ms
  cypress:server:browsers:chrome launching in chrome with debugging port { url: 'http://localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts', args: [ '--test-type', '--ignore-certificate-errors', '--start-maximized', '--silent-debugger-extension-api', '--no-default-browser-check', '--no-first-run', '--noerrdialogs', '--enable-fixed-layout', '--disable-popup-blocking', '--disable-password-generation', '--disable-single-click-autofill', '--disable-prompt-on-repos', '--disable-background-timer-throttling', '--disable-renderer-backgrounding', '--disable-renderer-throttling', '--disable-backgrounding-occluded-windows', '--disable-restore-session-state', '--disable-new-profile-management', '--disable-new-avatar-menu', '--allow-insecure-localhost', '--reduce-security-for-testing', '--enable-automation', '--disable-print-preview', '--disable-component-extensions-with-background-pages', '--disable-device-discovery-notifications', '--autoplay-policy=no-user-gesture-required', '--disable-site-isolation-trials', '--metrics-recording-only', '--disable-prompt-on-repost', '--disable-hang-monitor', '--disable-sync', '--disable-web-resources', '--safebrowsing-disable-download-protection', '--disable-client-side-phishing-detection', '--disable-component-update', "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'", '--disable-default-apps', '--disable-features=Translate,PrivacySandboxSettings4', '--use-fake-ui-for-media-stream', '--use-fake-device-for-media-stream', '--disable-ipc-flooding-protection', '--disable-backgrounding-occluded-window', '--disable-breakpad', '--password-store=basic', '--use-mock-keychain', '--disable-dev-shm-usage', '--enable-precise-memory-info', '--disable-gpu', '--no-sandbox', '--proxy-server=http://localhost:35995', '--disable-web-security', '--allow-running-insecure-content', '--proxy-bypass-list=<-loopback>', '--headless=new', '--window-size=1280,720', '--force-device-scale-factor=1', '--remote-debugging-port=34551', '--remote-debugging-address=127.0.0.1', '--user-data-dir=/home/workflows/.config/Cypress/cy/production/browsers/chrome-stable/run-4828', '--disk-cache-dir=/home/workflows/.config/Cypress/cy/production/browsers/chrome-stable/run-4828/CypressCache' ], port: 34551 } +12ms
Warning: terminator_CreateInstance: Failed to CreateInstance in ICD 3.  Skipping ICD.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
  cypress:server:browsers:cri-client connecting { connected: false, target: 'ws://127.0.0.1:37185/devtools/browser/6be8fcf1-3a08-40e0-b69b-13c121f68e3d' } +0ms
  cypress:server:browsers:cri-client connected { connected: true, target: 'ws://127.0.0.1:37185/devtools/browser/6be8fcf1-3a08-40e0-b69b-13c121f68e3d' } +22ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 1, method: 'Target.setDiscoverTargets', params: { discover: true } } +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 2, method: 'Target.setAutoAttach', params: { autoAttach: true, waitForDebuggerOnStart: true, flatten: true } } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Target.attachedToTarget' } +2ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Target.targetDestroyed' } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Inspector.targetReloadedAfterCrash' } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.targetCreated', params: { targetInfo: { targetId: '5758D94533C05791EF06527376111A7B', type: 'page', title: 'about:blank', url: 'about:blank', attached: false, canAccessOpener: false, browserContextId: '0D58A6B4FB9D7FE7A6CBA12EFCEAB9C4' } } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 1, result: {} } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.targetInfoChanged', params: { targetInfo: { targetId: '5758D94533C05791EF06527376111A7B', type: 'page', title: 'about:blank', url: 'about:blank', attached: true, canAccessOpener: false, browserContextId: '0D58A6B4FB9D7FE7A6CBA12EFCEAB9C4' } } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.attachedToTarget', params: { sessionId: '75F65233E836AAF474B5D1A51F60EABA', targetInfo: { targetId: '5758D94533C05791EF06527376111A7B', type: 'page', title: 'about:blank', url: 'about:blank', attached: true, canAccessOpener: false, browserContextId: '0D58A6B4FB9D7FE7A6CBA12EFCEAB9C4' }, waitingForDebugger: false } } +1ms
  cypress:server:browsers:browser-cri-client Target.attachedToTarget { targetId: '5758D94533C05791EF06527376111A7B', type: 'page', title: 'about:blank', url: 'about:blank', attached: true, canAccessOpener: false, browserContextId: '0D58A6B4FB9D7FE7A6CBA12EFCEAB9C4' } +143ms
  cypress:server:browsers:browser-cri-client Not waiting for debugger (id: 5758D94533C05791EF06527376111A7B) +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 2, result: {} } +0ms
  cypress:server:browsers:browser-cri-client Attaching to target url about:blank +1ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 3, method: 'Target.getTargets', params: {} } +4ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 3, result: { targetInfos: [ [Object] ] } } +1ms
  cypress:server:browsers:cri-client connecting { connected: false, target: '5758D94533C05791EF06527376111A7B' } +4ms
  cypress:server:browsers:cri-client connected { connected: true, target: '5758D94533C05791EF06527376111A7B' } +7ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 1, method: 'Target.setAutoAttach', params: { autoAttach: true, waitForDebuggerOnStart: true, flatten: true } } +7ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 1, result: {} } +8ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 2, method: 'Target.setDiscoverTargets', params: { discover: true } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.targetCreated', params: { targetInfo: { targetId: '5758D94533C05791EF06527376111A7B', type: 'page', title: 'about:blank', url: 'about:blank', attached: true, canAccessOpener: false, browserContextId: '0D58A6B4FB9D7FE7A6CBA12EFCEAB9C4' } } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 2, result: {} } +2ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 3, method: 'Runtime.enable', params: {} } +2ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Runtime.executionContextCreated', params: { context: { id: 1, origin: '://', name: '', uniqueId: '8818892774593116160.-2044988024042281442', auxData: [Object] } } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 3, result: {} } +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 4, method: 'Runtime.addBinding', params: { name: 'cypressSendToServer-/__socket/default' } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 4, result: {} } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Runtime.bindingCalled' } +5ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 5, method: 'Runtime.enable', params: {} } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 5, result: {} } +1ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 6, method: 'Runtime.addBinding', params: { name: 'cypressSendToServer-/__socket/data-context' } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 6, result: {} } +2ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Runtime.bindingCalled' } +3ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Target.targetCrashed' } +9ms
  cypress:server:browsers:chrome attaching listeners to chrome { url: 'http://localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts', options: { browser: { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '122.0.6261.94', path: 'google-chrome', minSupportedVersion: 64, majorVersion: '122', isHeadless: true, isHeaded: false }, url: 'http://localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts', browsers: [ [Object], [Object] ], userAgent: null, proxyUrl: 'http://localhost:35995', proxyServer: 'http://localhost:35995', socketIoRoute: '/__socket', chromeWebSecurity: false, isTextTerminal: true, downloadsFolder: '/home/workflows/workspace/e2e/<feature>/<feature>-e2e/cypress/downloads', experimentalModifyObstructiveThirdPartyCode: false, experimentalWebKitSupport: false, protocolManager: undefined, projectRoot: '/home/workflows/workspace/e2e/<feature>/<feature>-e2e', shouldLaunchNewTab: false, onError: [Function (anonymous)], videoApi: undefined, automationMiddleware: { onBeforeRequest: [Function: onBeforeRequest], onAfterResponse: [Function: onAfterResponse] }, onWarning: [Function: onWarning], onBrowserClose: [Function (anonymous)], relaunchBrowser: [AsyncFunction (anonymous)], onBrowserOpen: [Function: onBrowserOpen] } } +119ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Network.requestWillBeSent' } +2ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Network.requestWillBeSent' } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Network.responseReceived' } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Network.responseReceived' } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Network.requestServedFromCache' } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Network.requestServedFromCache' } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Network.loadingFailed' } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Network.loadingFailed' } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'ServiceWorker.workerRegistrationUpdated' } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'ServiceWorker.workerVersionUpdated' } +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 7, method: 'Network.enable', params: { maxTotalBufferSize: 0, maxResourceBufferSize: 0, maxPostDataSize: 0 } } +16ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 7, result: {} } +27ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 8, method: 'Page.enable', params: {} } +15ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 8, result: {} } +17ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 9, method: 'ServiceWorker.enable', params: {} } +15ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Page.downloadWillBegin' } +32ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Page.downloadProgress' } +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 10, method: 'Page.setDownloadBehavior', params: { behavior: 'allow', downloadPath: '/home/workflows/workspace/e2e/<feature>/<feature>-e2e/cypress/downloads' } } +2ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 11, method: 'Runtime.enable', params: {} } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 9, result: {} } +3ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'ServiceWorker.workerRegistrationUpdated', params: { registrations: [] } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'ServiceWorker.workerVersionUpdated', params: { versions: [] } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 10, result: {} } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 11, result: {} } +1ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 12, method: 'Runtime.addBinding', params: { name: 'cypressUtilityBinding' } } +3ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 12, result: {} } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Runtime.bindingCalled' } +4ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 13, method: 'Page.addScriptToEvaluateOnNewDocument', params: { source: '\n' + "    const binding = window['cypressUtilityBinding']\n" + "    delete window['cypressUtilityBinding']\n" + '    ;(e=>{if(e){const s=e=>JSON.stringify({type:"download",destination:e});window.navigation?window.navigation.addEventListener("navigate",(o=>{"string"==typeof o.downloadRequest&&e(s(o.destination.url))})):(document.addEventListener("click",(o=>{o.target instanceof HTMLAnchorElement&&"string"==typeof o.target.download&&e(s(o.target.href))})),document.addEventListener("keydown",(o=>{o.target instanceof HTMLAnchorElement&&"Enter"===o.key&&"string"==typeof o.target.download&&e(s(o.target.href))})))}})(binding)\n' + '    ;(e=>{if(window.ServiceWorkerContainer){const s=window.ServiceWorkerContainer.prototype.register;window.ServiceWorkerContainer.prototype.register=function(o,t){const n=document.createElement("a");let r;"string"==typeof o?(n.setAttribute("href",o),r=new URL(n.href)):r=o,n.remove();const a={type:"service-worker-registration",scriptURL:`${r.origin}${r.pathname}`,initiatorOrigin:window.location.origin};return e(JSON.stringify(a)),s.apply(this,[o,t])}}})(binding)\n' + '    ' } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 13, result: { identifier: '1' } } +1ms
  cypress:server:browsers:chrome received CRI client +42ms
  cypress:server:browsers:chrome navigating to page http://localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 14, method: 'Page.bringToFront', params: {} } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 14, result: {} } +1ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 15, method: 'Page.navigate', params: { url: 'http://localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts' } } +1ms
  cypress:server:browsers:cri-client connecting { connected: false, target: 'ws://127.0.0.1:34551/devtools/browser/90bec01b-bf23-498a-b7cc-5f5c4aac2fa9' } +6ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Page.frameStartedLoading', params: { frameId: '5758D94533C05791EF06527376111A7B' } } +12ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.requestWillBeSent', params: { requestId: '081BCC229F58B6D750A69FA4B4C7222F', loaderId: '081BCC229F58B6D750A69FA4B4C7222F', documentURL: 'http://localhost:4400/__/', request: { url: 'http://localhost:4400/__/', urlFragment: '#/specs/runner?file=src/e2e/<feature>.component.cy.ts', method: 'GET', headers: [Object], mixedContentType: 'none', initialPriority: 'VeryHigh', referrerPolicy: 'strict-origin-when-cross-origin', isSameSite: true }, timestamp: 2830.352777, wallTime: 1713418509.71972, initiator: { type: 'other' }, redirectHasExtraInfo: false, type: 'Document', frameId: '5758D94533C05791EF06527376111A7B', hasUserGesture: false } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.requestWillBeSentExtraInfo', params: { requestId: '081BCC229F58B6D750A69FA4B4C7222F', associatedCookies: [], headers: { Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-US,en;q=0.9', Host: 'localhost:4400', 'Proxy-Connection': 'keep-alive', 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': 'navigate', 'Sec-Fetch-Site': 'none', 'Sec-Fetch-User': '?1', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/122.0.0.0 Safari/537.36', 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Linux"' }, connectTiming: { requestTime: 2830.353901 }, siteHasCookieInOtherPartition: false } } +1ms
  cypress:server:browsers:cri-client connected { connected: true, target: 'ws://127.0.0.1:34551/devtools/browser/90bec01b-bf23-498a-b7cc-5f5c4aac2fa9' } +60ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 1, method: 'Target.setDiscoverTargets', params: { discover: true } } +64ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 2, method: 'Target.setAutoAttach', params: { autoAttach: true, waitForDebuggerOnStart: true, flatten: true } } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Target.attachedToTarget' } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Target.targetDestroyed' } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Inspector.targetReloadedAfterCrash' } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.targetCreated', params: { targetInfo: { targetId: '76E8C1331917C03C6CB9602FEEA98CC9', type: 'page', title: 'about:blank', url: 'about:blank', attached: false, canAccessOpener: false, browserContextId: '2C2F040B1AA7FE80920D222A379AF01D' } } } +53ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 1, result: {} } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.targetInfoChanged', params: { targetInfo: { targetId: '76E8C1331917C03C6CB9602FEEA98CC9', type: 'page', title: 'about:blank', url: 'about:blank', attached: true, canAccessOpener: false, browserContextId: '2C2F040B1AA7FE80920D222A379AF01D' } } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.attachedToTarget', params: { sessionId: 'D2F9D826CD7D5358D3A373F63BDF563B', targetInfo: { targetId: '76E8C1331917C03C6CB9602FEEA98CC9', type: 'page', title: 'about:blank', url: 'about:blank', attached: true, canAccessOpener: false, browserContextId: '2C2F040B1AA7FE80920D222A379AF01D' }, waitingForDebugger: false } } +0ms
  cypress:server:browsers:browser-cri-client Target.attachedToTarget { targetId: '76E8C1331917C03C6CB9602FEEA98CC9', type: 'page', title: 'about:blank', url: 'about:blank', attached: true, canAccessOpener: false, browserContextId: '2C2F040B1AA7FE80920D222A379AF01D' } +134ms
  cypress:server:browsers:browser-cri-client Not waiting for debugger (id: 76E8C1331917C03C6CB9602FEEA98CC9) +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 2, result: {} } +0ms
  cypress:server:browsers:browser-cri-client Attaching to target url about:blank +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 3, method: 'Target.getTargets', params: {} } +2ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 3, result: { targetInfos: [ [Object] ] } } +1ms
  cypress:server:browsers:cri-client connecting { connected: false, target: '76E8C1331917C03C6CB9602FEEA98CC9' } +3ms
  cypress:server:browsers:cri-client connected { connected: true, target: '76E8C1331917C03C6CB9602FEEA98CC9' } +9ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 1, method: 'Target.setAutoAttach', params: { autoAttach: true, waitForDebuggerOnStart: true, flatten: true } } +10ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 1, result: {} } +10ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 2, method: 'Target.setDiscoverTargets', params: { discover: true } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.targetCreated', params: { targetInfo: { targetId: '76E8C1331917C03C6CB9602FEEA98CC9', type: 'page', title: 'about:blank', url: 'about:blank', attached: true, canAccessOpener: false, browserContextId: '2C2F040B1AA7FE80920D222A379AF01D' } } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 2, result: {} } +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 3, method: 'Runtime.enable', params: {} } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Runtime.executionContextCreated', params: { context: { id: 1, origin: '://', name: '', uniqueId: '7376342126364536657.5536786866131234766', auxData: [Object] } } } +5ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 3, result: {} } +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 4, method: 'Runtime.addBinding', params: { name: 'cypressSendToServer-/__socket/default' } } +4ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 4, result: {} } +1ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Runtime.bindingCalled' } +7ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 5, method: 'Runtime.enable', params: {} } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.responseReceived', params: { requestId: '081BCC229F58B6D750A69FA4B4C7222F', loaderId: '081BCC229F58B6D750A69FA4B4C7222F', timestamp: 2830.432045, type: 'Document', response: { url: 'http://localhost:4400/__/', status: 200, statusText: 'OK', headers: [Object], mimeType: 'text/html', charset: 'utf-8', connectionReused: false, connectionId: 112, remoteIPAddress: '127.0.0.1', remotePort: 35995, fromDiskCache: false, fromServiceWorker: false, fromPrefetchCache: false, encodedDataLength: 288, timing: [Object], responseTime: 1713418509758.941, protocol: 'http/1.1', alternateProtocolUsage: 'unspecifiedReason', securityState: 'secure' }, hasExtraInfo: true, frameId: '5758D94533C05791EF06527376111A7B' } } +2ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.responseReceivedExtraInfo', params: { requestId: '081BCC229F58B6D750A69FA4B4C7222F', blockedCookies: [], headers: { Connection: 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html; charset=utf-8', Date: 'Thu, 18 Apr 2024 05:35:09 GMT', ETag: 'W/"3500-0qfqD1dtTl1CbnyE/wsKUJ7gd1k"', 'Keep-Alive': 'timeout=5', 'Origin-Agent-Cluster': '?0', 'Transfer-Encoding': 'chunked', Vary: 'Accept-Encoding' }, resourceIPAddressSpace: 'Unknown', statusCode: 200, headersText: 'HTTP/1.1 200 OK\r\n' + 'Origin-Agent-Cluster: ?0\r\n' + 'Content-Type: text/html; charset=utf-8\r\n' + 'ETag: W/"3500-0qfqD1dtTl1CbnyE/wsKUJ7gd1k"\r\n' + 'Vary: Accept-Encoding\r\n' + 'Content-Encoding: gzip\r\n' + 'Date: Thu, 18 Apr 2024 05:35:09 GMT\r\n' + 'Connection: keep-alive\r\n' + 'Keep-Alive: timeout=5\r\n' + 'Transfer-Encoding: chunked\r\n' + '\r\n', cookiePartitionKey: 'http://localhost', cookiePartitionKeyOpaque: false } } +5ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 15, result: { frameId: '5758D94533C05791EF06527376111A7B', loaderId: '081BCC229F58B6D750A69FA4B4C7222F' } } +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 6, method: 'Runtime.evaluate', params: { expression: '\n' + "        if (window['cypressSocket-/__socket/default'] && window['cypressSocket-/__socket/default'].send) {\n" + `          window['cypressSocket-/__socket/default'].send('"42/__socket/default,[[\\\\"1\\\\",\\\\"2\\\\",\\\\"3\\\\"],\\\\"request:event\\\\",\\\\"6523369f-1c14-4d13-a488-d3efdb502d03\\\\",[\\\\"4\\\\",\\\\"5\\\\"],\\\\"response:received\\\\",{\\\\"requestId\\\\":\\\\"6\\\\",\\\\"status\\\\":200,\\\\"headers\\\\":\\\\"7\\\\"},\\\\"081BCC229F58B6D750A69FA4B4C7222F\\\\",{\\\\"Connection\\\\":\\\\"8\\\\",\\\\"Content-Encoding\\\\":\\\\"9\\\\",\\\\"Content-Type\\\\":\\\\"10\\\\",\\\\"Date\\\\":\\\\"11\\\\",\\\\"ETag\\\\":\\\\"12\\\\",\\\\"Keep-Alive\\\\":\\\\"13\\\\",\\\\"Origin-Agent-Cluster\\\\":\\\\"14\\\\",\\\\"Transfer-Encoding\\\\":\\\\"15\\\\",\\\\"Vary\\\\":\\\\"16\\\\"},\\\\"keep-alive\\\\",\\\\"gzip\\\\",\\\\"text/html; charset=utf-8\\\\",\\\\"Thu, 18 Apr 2024 05:35:09 GMT\\\\",\\\\"W/\\\\\\\\\\\\"3500-0qfqD1dtTl1CbnyE/wsKUJ7gd1k\\\\\\\\\\\\"\\\\",\\\\"timeout=5\\\\",\\\\"?0\\\\",\\\\"chunked\\\\",\\\\"Accept-Encoding\\\\"]"')\n` + '        }\n' + '      ' } } +8ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 16, method: 'Fetch.enable', params: { patterns: [ [Object] ] } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 5, result: {} } +16ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 6, result: { result: { type: 'undefined' } } } +0ms
  cypress-verbose:server:browsers:cri-client:send:[-->] sending CDP command { id: 7, method: 'Runtime.addBinding', params: { name: 'cypressSendToServer-/__socket/data-context' } } +15ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.requestWillBeSentExtraInfo', params: { requestId: '5191.2', associatedCookies: [], headers: { Accept: '*/*', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-US,en;q=0.9', Host: 'localhost:4400', Origin: 'http://localhost:4400', 'Proxy-Connection': 'keep-alive', Referer: 'http://localhost:4400/__/', 'Sec-Fetch-Dest': 'script', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-origin', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/122.0.0.0 Safari/537.36', 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Linux"' }, connectTiming: { requestTime: 2830.436967 }, clientSecurityState: { initiatorIsSecureContext: true, initiatorIPAddressSpace: 'Local', privateNetworkRequestPolicy: 'Allow' }, siteHasCookieInOtherPartition: false } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.targetInfoChanged', params: { targetInfo: { targetId: '5758D94533C05791EF06527376111A7B', type: 'page', title: 'localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts', url: 'http://localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts', attached: true, canAccessOpener: false, browserContextId: '0D58A6B4FB9D7FE7A6CBA12EFCEAB9C4' } } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.requestWillBeSentExtraInfo', params: { requestId: '5191.3', associatedCookies: [], headers: { Accept: '*/*', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-US,en;q=0.9', Host: 'localhost:4400', Origin: 'http://localhost:4400', 'Proxy-Connection': 'keep-alive', Referer: 'http://localhost:4400/__/', 'Sec-Fetch-Dest': 'script', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-origin', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/122.0.0.0 Safari/537.36', 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Linux"' }, connectTiming: { requestTime: 2830.43719 }, clientSecurityState: { initiatorIsSecureContext: true, initiatorIPAddressSpace: 'Local', privateNetworkRequestPolicy: 'Allow' }, siteHasCookieInOtherPartition: false } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.requestWillBeSentExtraInfo', params: { requestId: '5191.4', associatedCookies: [], headers: { Accept: 'text/css,*/*;q=0.1', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-US,en;q=0.9', Host: 'localhost:4400', 'Proxy-Connection': 'keep-alive', Referer: 'http://localhost:4400/__/', 'Sec-Fetch-Dest': 'style', 'Sec-Fetch-Mode': 'no-cors', 'Sec-Fetch-Site': 'same-origin', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/122.0.0.0 Safari/537.36', 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Linux"' }, connectTiming: { requestTime: 2830.437434 }, clientSecurityState: { initiatorIsSecureContext: true, initiatorIPAddressSpace: 'Local', privateNetworkRequestPolicy: 'Allow' }, siteHasCookieInOtherPartition: false } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Runtime.executionContextsCleared', params: {} } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Page.frameNavigated', params: { frame: { id: '5758D94533C05791EF06527376111A7B', loaderId: '081BCC229F58B6D750A69FA4B4C7222F', url: 'http://localhost:4400/__/', urlFragment: '#/specs/runner?file=src/e2e/<feature>.component.cy.ts', domainAndRegistry: '', securityOrigin: 'http://localhost:4400', mimeType: 'text/html', adFrameStatus: [Object], secureContextType: 'SecureLocalhost', crossOriginIsolatedContextType: 'NotIsolated', gatedAPIFeatures: [] }, type: 'Navigation' } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.dataReceived', params: { requestId: '081BCC229F58B6D750A69FA4B4C7222F', timestamp: 2830.436313, dataLength: 13568, encodedDataLength: 0 } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.requestWillBeSent', params: { requestId: '5191.2', loaderId: '081BCC229F58B6D750A69FA4B4C7222F', documentURL: 'http://localhost:4400/__/', request: { url: 'http://localhost:4400/__/assets/polyfills-3023ae52.js', method: 'GET', headers: [Object], mixedContentType: 'none', initialPriority: 'High', referrerPolicy: 'strict-origin-when-cross-origin', isSameSite: true }, timestamp: 2830.436636, wallTime: 1713418509.803611, initiator: { type: 'parser', url: 'http://localhost:4400/__/', lineNumber: 4, columnNumber: 73 }, redirectHasExtraInfo: false, type: 'Script', frameId: '5758D94533C05791EF06527376111A7B', hasUserGesture: false } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.requestWillBeSent', params: { requestId: '5191.3', loaderId: '081BCC229F58B6D750A69FA4B4C7222F', documentURL: 'http://localhost:4400/__/', request: { url: 'http://localhost:4400/__/assets/index-f6dca216.js', method: 'GET', headers: [Object], mixedContentType: 'none', initialPriority: 'High', referrerPolicy: 'strict-origin-when-cross-origin', isSameSite: true }, timestamp: 2830.436929, wallTime: 1713418509.803871, initiator: { type: 'parser', url: 'http://localhost:4400/__/', lineNumber: 10, columnNumber: 69 }, redirectHasExtraInfo: false, type: 'Script', frameId: '5758D94533C05791EF06527376111A7B', hasUserGesture: false } } +1ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.requestWillBeSent', params: { requestId: '5191.4', loaderId: '081BCC229F58B6D750A69FA4B4C7222F', documentURL: 'http://localhost:4400/__/', request: { url: 'http://localhost:4400/__/assets/index-bda26968.css', method: 'GET', headers: [Object], mixedContentType: 'none', initialPriority: 'VeryHigh', referrerPolicy: 'strict-origin-when-cross-origin', isSameSite: true }, timestamp: 2830.437098, wallTime: 1713418509.804045, initiator: { type: 'parser', url: 'http://localhost:4400/__/', lineNumber: 11, columnNumber: 60 }, redirectHasExtraInfo: false, type: 'Stylesheet', frameId: '5758D94533C05791EF06527376111A7B', hasUserGesture: false } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Runtime.executionContextCreated', params: { context: { id: 2, origin: 'http://localhost:4400', name: '', uniqueId: '-1749977305014741193.-333925094315886352', auxData: [Object] } } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Network.loadingFinished', params: { requestId: '081BCC229F58B6D750A69FA4B4C7222F', timestamp: 2830.409251, encodedDataLength: 4964 } } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { id: 16, result: {} } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Fetch.requestPaused' } +25ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Page.frameAttached' } +0ms
  cypress:server:browsers:cri-client registering CDP on event { eventName: 'Page.frameDetached' } +0ms
  cypress:server:browsers browser opened +323ms
  cypress:server:browsers killing browser process +0ms
  cypress:server:browsers:chrome closing remote interface client { options: { gracefulShutdown: true } } +111ms
  cypress:server:browsers:cri-client closing cri client { closed: false, target: '76E8C1331917C03C6CB9602FEEA98CC9' } +1ms
  cypress:server:browsers:chrome closing chrome +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Target.targetInfoChanged', params: { targetInfo: { targetId: '5758D94533C05791EF06527376111A7B', type: 'page', title: 'localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts', url: 'http://localhost:4400/__/#/specs/runner?file=src/e2e/<feature>.component.cy.ts', attached: true, canAccessOpener: false, browserContextId: '0D58A6B4FB9D7FE7A6CBA12EFCEAB9C4' } } } +11ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Inspector.detached', params: { reason: 'Render process gone.' }, sessionId: '75F65233E836AAF474B5D1A51F60EABA' } +0ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Page.frameStoppedLoading', params: { frameId: '5758D94533C05791EF06527376111A7B' } } +6ms
  cypress-verbose:server:browsers:cri-client:recv:[<--] received CDP message { method: 'Inspector.detached', params: { reason: 'Render process gone.' } } +0ms
  cypress:server:browsers:cri-client disconnected, starting retries to reconnect... { closed: false, target: 'ws://127.0.0.1:37185/devtools/browser/6be8fcf1-3a08-40e0-b69b-13c121f68e3d' } +19ms
  cypress:server:browsers:cri-client disconnected, attempting to reconnect... { retryIndex: 1, closed: false, target: 'ws://127.0.0.1:37185/devtools/browser/6be8fcf1-3a08-40e0-b69b-13c121f68e3d' } +0ms
  cypress:server:browsers:cri-client connecting { connected: false, target: 'ws://127.0.0.1:37185/devtools/browser/6be8fcf1-3a08-40e0-b69b-13c121f68e3d' } +0ms
  cypress:server:browsers:cri-client closed cri client { closed: true, target: '76E8C1331917C03C6CB9602FEEA98CC9' } +3ms
  cypress:server:browsers:cri-client closing cri client { closed: false, target: 'ws://127.0.0.1:34551/devtools/browser/90bec01b-bf23-498a-b7cc-5f5c4aac2fa9' } +0ms
  cypress:server:browsers:cri-client could not reconnect, retrying... { closed: false, target: 'ws://127.0.0.1:37185/devtools/browser/6be8fcf1-3a08-40e0-b69b-13c121f68e3d', err: Error: connect ECONNREFUSED 127.0.0.1:37185     at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 37185 } } +1ms
  cypress:server:browsers:cri-client closed cri client { closed: true, target: 'ws://127.0.0.1:34551/devtools/browser/90bec01b-bf23-498a-b7cc-5f5c4aac2fa9' } +4ms
WebSocket connection closed
Error: WebSocket connection closed
    at _._handleConnectionClose (<embedded>:2262:579841)
    at A.<anonymous> (<embedded>:2262:577905)
    at Object.onceWrapper (node:events:629:26)
    at A.emit (node:events:514:28)
    at A.emitClose (<embedded>:2262:558129)
    at Socket.H (<embedded>:2262:565440)
    at Socket.emit (node:events:514:28)
    at TCP.<anonymous> (node:net:323:12)
  cypress:server:browsers browser process killed +42ms
  cypress:server:browsers browsers.kill called with no active instance +4ms

this log should be more relevant. Lets focus on 1 problem at a time

I also started seeing the issue sometimes for the first time a few days ago (we upgraded from 13.6.6 to 13.7.2 recently and to the latest cypress/browsers container)

  • GitHub actions
  • Self-hosted runner
  • 13.7.2 with cypress/browsers:node-20.12.0-chrome-123.0.6312.86-1-ff-124.0.2-edge-123.0.2420.65-1
  • Video recording is on

image

@jennifer-shehane Happened again on my end. Can we reopen?! This issue definitely seems related https://stackoverflow.com/questions/71342595/chrome-websocket-connection-closes-immediately

@jennifer-shehane Just happened again on our CI, using Cypress 13.6.6, Electron 118, Node 20.11.0 EDIT: Also happening with Chrome 122

@jennifer-shehane Yes it’s still happening image

image


Edit: I justed noticed my browser version is waaay behind, probably because Im using Cypress Docker image. Let me try updating and see if this still keeps happening


Update: Im using now latest Cypress version with latests cypress/browser docker image on CI and I didnt experience the websocket issue neither the memory crash issue I was experiencing. The tests are even faster. Let me retry the CI a couple more times again to make sure it will not crash again

image

Update: @jennifer-shehane I could get rid of the webSocket issues by using the latest Node + latest chrome version + latest Cypress. This combination didn’t get rid of the increased sensibility of Cypress latest version for memory increase, as slight memory usage increases caused crashes.

FYI, we also faced this issue in a recurring test job we set up at Qonto with Cypress. Downgrading to v13.5.1 fixed the issue for us as well.

@jennifer-shehane we remove the video recording after every test and voalya, we stop seeing the nasty socket error. We lost our video debugging but our tests are stable on version 13.6.2.

Please check why this is happen.

Any update on fixing this issue ? The issue still persist in v13.6.2.