cypress-io / cypress

Fast, easy and reliable testing for anything that runs in a browser.
https://cypress.io
MIT License
46.69k stars 3.16k forks source link

Kitchensink hangs starting a test on CircleCI Windows #5596

Closed bahmutov closed 4 years ago

bahmutov commented 4 years ago

Cypress v3.6.0 on Windows 64bit on CircleCI with Electron 73 (default) browser

Example build https://circleci.com/gh/cypress-io/cypress-example-kitchensink/3778

Just hangs when starting the test

> cypress-example-kitchensink@0.0.0-development e2e:record C:\Users\circleci\app
> cypress run --record "--env" "circle=true"

====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:    3.6.0                                                                              │
  │ Browser:    Electron 73 (headless)                                                             │
  │ Specs:      19 found (examples\actions.spec.js, examples\aliasing.spec.js, examples\assertions │
  │             .spec.js, examples\connectors.spec.js, examples\cookies.spec.js, examples\cypress_ │
  │             api.spec.js, examples\files.spec.js, examples\local_storage.spec.js, examples\loca │
  │             tion.spec.j...)                                                                    │
  │ Params:     Group: false, Parallel: false                                                      │
  │ Run URL:    https://dashboard.cypress.io/#/projects/******/runs/9280                           │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘

────────────────────────────────────────────────────────────────────────────────────────────────────

  Running:  examples\actions.spec.js                                                       (1 of 19)
  Estimated: 19 seconds

  Actions
Too long with no output (exceeded 1m0s)

Enabled debug logs, see https://circleci.com/gh/cypress-io/cypress-example-kitchensink/3783 for them. The error that caught my eye is at the beginning


Show containers:All (1)Successful (0)Failed (1)
0
(02:25)
+
TEST
Spin up Environment00:10
Checkout code00:02
Restoring Cache00:33
npm ci00:22
npm run cy:verify00:05
Saving Cache00:01
Start server01:10
Run Cypress tests01:10 (timed out)
#!bash.exe
DEBUG=cypress* npm run e2e -- --env circle=true

> cypress-example-kitchensink@0.0.0-development e2e C:\Users\circleci\app
> cypress run "--env" "circle=true"

2019-11-04T14:35:26.709Z cypress:cli cli starts with arguments ["C:\\Program Files\\nodejs\\node.exe","C:\\Users\\circleci\\app\\node_modules\\cypress\\bin\\cypress","run","--env","circle=true"]
2019-11-04T14:35:26.710Z cypress:cli NODE_OPTIONS is not set
2019-11-04T14:35:26.711Z cypress:cli program parsing arguments
2019-11-04T14:35:26.712Z cypress:cli running Cypress
2019-11-04T14:35:26.786Z cypress:cli parsed cli options { env: 'circle=true' }
2019-11-04T14:35:26.789Z cypress:cli verifying Cypress app
2019-11-04T14:35:26.790Z cypress:cli checking environment variables
2019-11-04T14:35:26.794Z cypress:cli checking if executable exists C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\Cypress.exe
2019-11-04T14:35:26.796Z cypress:cli Binary is executable? : true
2019-11-04T14:35:26.797Z cypress:cli binaryDir is  C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress
2019-11-04T14:35:26.797Z cypress:cli Reading binary package.json from: C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\package.json
2019-11-04T14:35:26.800Z cypress:cli Found binary version 3.6.0 installed in: C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress
2019-11-04T14:35:26.801Z cypress:cli { verified: true }
2019-11-04T14:35:26.801Z cypress:cli is Verified ? true
2019-11-04T14:35:26.801Z cypress:cli processing run options
2019-11-04T14:35:26.801Z cypress:cli --key is not set, looking up environment variable CYPRESS_RECORD_KEY
2019-11-04T14:35:26.802Z cypress:cli Using CYPRESS_RECORD_KEY from environment variable
2019-11-04T14:35:26.802Z cypress:cli run to spawn.start args ["--run-project","C:\\Users\\circleci\\app","--env","circle=true","--key","************************************"]
2019-11-04T14:35:26.802Z cypress:cli needs to start own Xvfb? false
2019-11-04T14:35:26.803Z cypress:cli spawning, should retry on display problem? false
2019-11-04T14:35:26.811Z cypress:cli spawning Cypress with executable: C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\Cypress.exe
2019-11-04T14:35:26.813Z cypress:cli spawn args [ '--run-project', 'C:\\Users\\circleci\\app', '--env', 'circle=true', '--key', '************************************', '--cwd', 'C:\\Users\\circleci\\app' ] { detached: false, stdio: 'pipe', windowsHide: false }
2019-11-04T14:35:26.994Z cypress:cli piping process STDIN into child STDIN
2019-11-04T14:35:26.995Z cypress:cli piping child STDOUT to process STDOUT
2019-11-04T14:35:26.995Z cypress:cli piping child STDERR to process STDERR

  cypress:ts Running without ts-node hook in environment "production" +0ms
  cypress:server:cypress starting cypress with argv [ 'C:\\Users\\circleci\\AppData\\Local\\Cypress\\Cache\\3.6.0\\Cypress\\Cypress.exe', '--run-project', 'C:\\Users\\circleci\\app', '--env', 'circle=true', '--key', '************************************', '--cwd', 'C:\\Users\\circleci\\app' ] +0ms
  cypress:server:args argv array: [ 'C:\\Users\\circleci\\AppData\\Local\\Cypress\\Cache\\3.6.0\\Cypress\\Cypress.exe', '--run-project', 'C:\\Users\\circleci\\app', '--env', 'circle=true', '--key', '************************************', '--cwd', 'C:\\Users\\circleci\\app' ] +0ms
  cypress:server:args argv parsed: { _: [ 'C:\\Users\\circleci\\AppData\\Local\\Cypress\\Cache\\3.6.0\\Cypress\\Cypress.exe' ], runProject: 'C:\\Users\\circleci\\app', env: 'circle=true', key: '************************************', cwd: 'C:\\Users\\circleci\\app', invokedFromCli: true } +5ms
  cypress:server:util:proxy found proxy environment variables { npm_config_proxy: '', npm_config_https_proxy: '' } +0ms
  cypress:server:util:proxy HTTP_PROXY is falsy, disabling HTTP_PROXY +1ms
  cypress:server:util:proxy setting default NO_PROXY of `` +0ms
  cypress:server:util:proxy <-loopback> not found, adding localhost to NO_PROXY +0ms
  cypress:server:util:proxy normalized proxy environment variables { NO_PROXY: '127.0.0.1,::1,localhost' } +1ms
  cypress:server:args options { _: [ 'C:\\Users\\circleci\\AppData\\Local\\Cypress\\Cache\\3.6.0\\Cypress\\Cypress.exe' ], runProject: 'C:\\Users\\circleci\\app', key: '************************************', cwd: 'C:\\Users\\circleci\\app', invokedFromCli: true, config: { env: { circle: true } } } +4ms
  cypress:server:args argv options: { _: [ 'C:\\Users\\circleci\\AppData\\Local\\Cypress\\Cache\\3.6.0\\Cypress\\Cypress.exe' ], runProject: 'C:\\Users\\circleci\\app', key: '************************************', cwd: 'C:\\Users\\circleci\\app', invokedFromCli: true, config: { env: { circle: true } }, projectRoot: 'C:\\Users\\circleci\\app', run: true } +1ms
  cypress:server:appdata path: C:\Users\circleci\AppData\Roaming\Cypress\cy\production +0ms
  cypress:server:cypress starting in mode run +397ms
  cypress:server:cypress running Electron currently +0ms
  cypress:server:appdata path: C:\Users\circleci\AppData\Roaming\Cypress\cy\production +676ms
  cypress:server:appdata path: C:\Users\circleci\AppData\Roaming\Cypress\cy\production\cache +6ms
  cypress:server:appdata path: C:\Users\circleci\AppData\Roaming\Cypress\cy\production\browsers +2s
  cypress:server:video using ffmpeg from C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\@ffmpeg-installer\win32-x64\ffmpeg.exe +0ms
  cypress:server:chrome_policy_check error initializing chrome policy check { err: Error: Module did not self-register. at process.func [as dlopen] (electron/js2c/asar.js:155:31) at Object.Module._extensions..node (internal/modules/cjs/loader.js:881:18) at Object.func [as .node] (electron/js2c/asar.js:155:31) at Module.load (internal/modules/cjs/loader.js:701:32) at tryModuleLoad (internal/modules/cjs/loader.js:633:12) at Function.Module._load (internal/modules/cjs/loader.js:625:3) at Module.require (internal/modules/cjs/loader.js:739:19) at require (internal/modules/cjs/helpers.js:14:16) at Object.<anonymous> (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\registry-js\dist\lib\registry.js:4:7) at Module._compile (internal/modules/cjs/loader.js:839:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:851:10) at Module.load (internal/modules/cjs/loader.js:701:32) at tryModuleLoad (internal/modules/cjs/loader.js:633:12) at Function.Module._load (internal/modules/cjs/loader.js:625:3) at Module.require (internal/modules/cjs/loader.js:739:19) at require (internal/modules/cjs/helpers.js:14:16) at Object.<anonymous> (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\registry-js\dist\lib\index.js:6:10) at Module._compile (internal/modules/cjs/loader.js:839:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:851:10) at Module.load (internal/modules/cjs/loader.js:701:32) at tryModuleLoad (internal/modules/cjs/loader.js:633:12) at Function.Module._load (internal/modules/cjs/loader.js:625:3) at Module.require (internal/modules/cjs/loader.js:739:19) at require (internal/modules/cjs/helpers.js:14:16) at Object.<anonymous> (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\lib\util\chrome_policy_check.js:102:24) at Module._compile (internal/modules/cjs/loader.js:839:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:851:10) at Module.load (internal/modules/cjs/loader.js:701:32) at tryModuleLoad (internal/modules/cjs/loader.js:633:12) at Function.Module._load (internal/modules/cjs/loader.js:625:3) at Module.require (internal/modules/cjs/loader.js:739:19) at require (internal/modules/cjs/helpers.js:14:16) at Object.<anonymous> (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\lib\modes\run.js:31:27) at Module._compile (internal/modules/cjs/loader.js:839:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:851:10) at Module.load (internal/modules/cjs/loader.js:701:32) at tryModuleLoad (internal/modules/cjs/loader.js:633:12) at Function.Module._load (internal/modules/cjs/loader.js:625:3) at Module.require (internal/modules/cjs/loader.js:739:19) at require (internal/modules/cjs/helpers.js:14:16) at module.exports (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\lib\modes\index.js:7:16) at C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\lib\cypress.js:53:38 at tryCatcher (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\util.js:16:23) at Function.Promise.attempt.Promise.try (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\method.js:39:29) at Object.runElectron (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\lib\cypress.js:46:28) at Object.startInMode (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\lib\cypress.js:159:23) at C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\lib\cypress.js:117:24 at tryCatcher (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\util.js:16:23) at Promise._settlePromiseFromHandler (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:547:31) at Promise._settlePromise (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:604:18) at Promise._settlePromise0 (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:649:10) at Promise._settlePromises (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:729:18) at Promise._fulfill (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:673:18) at Promise._settlePromise (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:617:21) at Promise._settlePromise0 (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:649:10) at Promise._settlePromises (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:729:18) at Promise._fulfill (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:673:18) at PromiseArray._resolve (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise_array.js:127:19) at PromiseArray._promiseFulfilled (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise_array.js:145:14) at Promise._settlePromise (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:609:26) at Promise._settlePromise0 (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:649:10) at Promise._settlePromises (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:729:18) at Promise._fulfill (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:673:18) at C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\nodeback.js:42:21 at C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\fs-extra\lib\mkdirs\mkdirs.js:56:16 at callback (C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\server\node_modules\graceful-fs\polyfills.js:295:20) at FSReqCallback.oncomplete (fs.js:164:5) } +0ms

At the end there is nothing interesting

  cypress:server:request successful response received { requestId: 'request1' } +1ms
  cypress:server:server resolve:url headers received, buffering response { headers: { 'content-length': '28291', 'content-disposition': 'inline; filename="actions.html"', 'accept-ranges': 'bytes', etag: '"039d0311df5f1649899cb1e88dd12288662ea240"', 'content-type': 'text/html; charset=utf-8', 'cache-control': 'no-cache', vary: 'Accept-Encoding', date: 'Mon, 04 Nov 2019 14:35:35 GMT', connection: 'keep-alive' }, statusCode: 200 } +42ms
  cypress:server:cors Parsed URL { port: '8080', tld: 'localhost', domain: '' } +0ms
  cypress:server:cookies getting:cookies { domain: 'localhost' } +65ms
  cypress:server:cookies received get:cookies [] +1ms
  cypress:server:server setting details resolving url { isOkStatusCode: true, contentType: 'text/html', url: 'http://localhost:8080/commands/actions', status: 200, cookies: [], statusText: 'OK', redirects: [], originalUrl: 'http://localhost:8080/commands/actions' } +27ms
  cypress:server:server resolve:url response ended, setting buffer { newUrl: 'http://localhost:8080/commands/actions', details: { isOkStatusCode: true, contentType: 'text/html', url: 'http://localhost:8080/commands/actions', status: 200, cookies: [], statusText: 'OK', redirects: [], originalUrl: 'http://localhost:8080/commands/actions', isHtml: true } } +1ms
  cypress:server:server Setting remoteAuth null +2ms
  cypress:server:cors Parsed URL { port: '8080', tld: 'localhost', domain: '' } +8ms
  cypress:server:server Setting remoteOrigin http://localhost:8080 +0ms
  cypress:server:server Setting remoteHostAndPort { port: '8080', tld: 'localhost', domain: '' } +0ms
  cypress:server:server Setting remoteDocDomain localhost +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +0ms
  cypress:server:socket backend:request { eventName: 'preserve:run:state', args: [ { currentId: 'r3', tests: {}, startTime: '2019-11-04T14:35:35.031Z', emissions: [Object], passed: 0, failed: 0, pending: 0, numLogs: 0, autoScrollingEnabled: true, scrollTop: 0 } ] } +85ms
  cypress:server:routes Serving Cypress front-end by requested URL: /__/ +3s
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +347ms
  cypress:server:runner serving runner index.html with config { version: '3.6.0', platform: 'win32', arch: 'x64', projectName: 'app' } +3s
  cypress:server:runner env object has the following keys: RECORD_KEY, TEST_URL, circle +1ms
Too long with no output (exceeded 1m0s)

Note, the message cypress:server:runner env object has the following keys is usually followed by this:

  cypress:server:runner env object has the following keys: RECORD_KEY, TEST_URL, circle +0ms
  cypress:server:browsers:electron debugger: enable Console and Network +1s
  cypress:server:browsers browser opened +1s
  cypress:server:server Got CONNECT request from localhost:49998
bahmutov commented 4 years ago

This is blocking #5169

bahmutov commented 4 years ago

Tried to rerun this job with SSH and connect:

$ ssh -p 54782 35.231.230.8 -- bash.exe
The authenticity of host '[35.231.230.8]:54782 ([35.231.230.8]:54782)' can't be established.
RSA key fingerprint is SHA256:KrASngIf8kUTVFyNdhGHRZZ46LOfsWGTgrQFEWpZ1oU.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[35.231.230.8]:54782' (RSA) to the list of known hosts.

^CKilled by signal 2.

did not connect

Running with cmd.exe instead

$ ssh -p 54782 35.231.230.8 -- cmd.exe
cd app
npx serve --listen 8080

From another connection started Cypress tests, getting the same error

  cypress:server:socket backend:request { eventName: 'preserve:run:state', args: [ { currentId: 'r3', tests: {}, startTime: '2019-11-04T14:55:53.685Z', emissions: [Object], passed: 0, failed: 0, pending: 0, numLogs: 0, autoScrollingEnabled: true, scrollTop: 0 } ] } +95ms
  cypress:server:routes Serving Cypress front-end by requested URL: /__/ +4s
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +348ms
  cypress:server:runner serving runner index.html with config { version: '3.6.0', platform: 'win32', arch: 'x64', projectName: 'app' } +4s
  cypress:server:runner env object has the following keys: RECORD_KEY, TEST_URL +0ms

then just hangs ...
bahmutov commented 4 years ago

Running via SSH in headed mode WORKS

set DEBUG=*
npx cypress run --headed

 cypress:server:chrome_policy_check error initializing chrome policy check { err: Error: Module did not self-register. at process.func [as dlopen]
...
cypress:server:routes Serving Cypress front-end by requested URL: /__/ +0ms
  cypress:server:server Getting remote state: { auth: undefined, props: null, origin: 'http://localhost:50161', strategy: 'file', visiting: undefined, domainName: 'localhost', fileServer: 'http://localhost:50162' } +448ms
  cypress:server:runner serving runner index.html with config { version: '3.6.0', platform: 'win32', arch: 'x64', projectName: 'app' } +0ms
  cypress:server:runner env object has the following keys: RECORD_KEY, TEST_URL +0ms
  express:view lookup "C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\runner\dist\index.html" +3ms
  express:view stat "C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\runner\dist\index.html" +0ms
  express:view render "C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\runner\dist\index.html" +1ms
  compression gzip compression +0ms
  express:router dispatching GET /__cypress/runner/cypress_runner.css +113ms
  express:router query  : /__cypress/runner/cypress_runner.css +0ms
  express:router expressInit  : /__cypress/runner/cypress_runner.css +1ms
  express:router <anonymous>  : /__cypress/runner/cypress_runner.css +0ms
  express:router cookieParser  : /__cypress/runner/cypress_runner.css +0ms
  express:router compression  : /__cypress/runner/cypress_runner.css +0ms
  express:router errorHandler  : /__cypress/runner/cypress_runner.css +0ms
  send stat "C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\runner\dist\cypress_runner.css" +0ms
  send pipe "C:\Users\circleci\AppData\Local\Cypress\Cache\3.6.0\Cypress\resources\app\packages\runner\dist\cypress_runner.css" +2ms
  send accept ranges +0ms
...
compression gzip compression +53ms
  cypress:server:browsers:electron debugger: enable Console and Network +1s
  cypress:server:browsers browser opened +1s
  cypress:server:server Got CONNECT request from localhost:50161 +1s
  cypress:https-proxy Writing browserSocket connection headers { url: 'localhost:50161', headLength: 0, headers: { host: 'localhost:50161', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36' } } +2s
  cypress:https-proxy Got first head bytes { url: 'localhost:50161', head: 'GET /__socket.io/?EIO=3&transport=websocket HTTP/1.1\r\nHost: loca' } +4ms
  cypress:server:server HTTPS request does not match URL: https://localhost:50161 with props: null +6ms
  cypress:https-proxy Making connection to localhost:50161 +1ms

Hmm, but then it hangs again with the following

  cypress:server:project onMocha test +2ms
  cypress:server:reporter got mocha event 'test' with args: [ { id: 'r16', title: 'cy.scrollTo() - scroll the window or element to a position', body: "function () {\n    // https://on.cypress.io/scrollTo\n    // You can scroll to 9 specific positions of an element:\n    //  -----------------------------------\n    // | topLeft        top       topRight |\n    // |                                   |\n    // |                                   |\n    // |                                   |\n    // | left          center        right |\n    // |                                   |\n    // |                                   |\n    // |                                   |\n    // | bottomLeft   bottom   bottomRight |\n    //  -----------------------------------\n    // if you chain .scrollTo() off of cy, we will\n    // scroll the entire window\n    cy.scrollTo('bottom');\n    cy.get('#scrollable-horizontal').scrollTo('right'); // or you can scroll to a specific coordinate:\n    // (x axis, y axis) in pixels\n\n    cy.get('#scrollable-vertical').scrollTo(250, 250); // or you can scroll to a specific percentage\n    // of the (width, height) of the element\n\n    cy.get('#scrollable-both').scrollTo('75%', '25%'); // control the easing of the scroll (default is 'swing')\n\n    cy.get('#scrollable-vertical').scrollTo('center', {\n      easing: 'linear'\n    }); // control the duration of the scroll (in ms)\n\n    cy.get('#scrollable-both').scrollTo('center', {\n      duration: 2000\n    });\n  }", type: 'test' } ] +2ms
  engine:ws received "42["mocha","hook",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":156}]" +2ms
  engine:socket packet +2ms
  socket.io-parser decoded 2["mocha","hook",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":156}] as {"type":2,"nsp":"/","data":["mocha","hook",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":156}]} +1ms
  socket.io:socket got packet {"type":2,"nsp":"/","data":["mocha","hook",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":156}]} +2ms
  socket.io:socket emitting event ["mocha","hook",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":156}] +0ms
  socket.io:socket dispatching an event ["mocha","hook",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":156}] +0ms
  cypress:server:project onMocha hook +2ms
  cypress:server:reporter got mocha event 'hook' with args: [ { id: 'r16', title: '"before each" hook', hookName: 'before each', hookId: 'h1', body: "function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }", type: 'hook', duration: 156 } ] +2ms
  engine:ws received "4241["automation:request","get:cookies",{"domain":"localhost"}]" +2ms
  engine:socket packet +2ms
  socket.io-parser decoded 241["automation:request","get:cookies",{"domain":"localhost"}] as {"type":2,"nsp":"/","id":41,"data":["automation:request","get:cookies",{"domain":"localhost"}]} +2ms
  socket.io:socket got packet {"type":2,"nsp":"/","id":41,"data":["automation:request","get:cookies",{"domain":"localhost"}]} +1ms
  socket.io:socket emitting event ["automation:request","get:cookies",{"domain":"localhost"}] +0ms
  socket.io:socket attaching ack callback to event +0ms
  socket.io:socket dispatching an event ["automation:request","get:cookies",{"domain":"localhost"},null] +0ms
  cypress:server:socket automation:request get:cookies { domain: 'localhost' } +204ms
  cypress:server:cookies getting:cookies { domain: 'localhost' } +195ms
  cypress:server:cookies received get:cookies [] +0ms
  socket.io:socket sending ack [{"response":[]}] +1ms
  socket.io:client writing packet {"id":41,"type":3,"data":[{"response":[]}],"nsp":"/"} +194ms
  socket.io-parser encoding packet {"id":41,"type":3,"data":[{"response":[]}],"nsp":"/"} +2ms
  socket.io-parser encoded {"id":41,"type":3,"data":[{"response":[]}],"nsp":"/"} as 341[{"response":[]}] +0ms
  engine:socket sending packet "message" (341[{"response":[]}]) +2ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "4341[{"response":[]}]" +2ms
  engine:ws received "4242["backend:request","reset:xhr:server"]" +0ms
  engine:socket packet +0ms
  socket.io-parser decoded 242["backend:request","reset:xhr:server"] as {"type":2,"nsp":"/","id":42,"data":["backend:request","reset:xhr:server"]} +0ms
  socket.io:socket got packet {"type":2,"nsp":"/","id":42,"data":["backend:request","reset:xhr:server"]} +2ms
  socket.io:socket emitting event ["backend:request","reset:xhr:server"] +0ms
  socket.io:socket attaching ack callback to event +0ms
  socket.io:socket dispatching an event ["backend:request","reset:xhr:server",null] +0ms
  cypress:server:socket backend:request { eventName: 'reset:xhr:server', args: [] } +3ms
  cypress:server:xhr_ws_server resetting incomingXhrs { incomingXhrResponses: {} } +225ms
  socket.io:socket sending ack [{}] +0ms
  socket.io:client writing packet {"id":42,"type":3,"data":[{}],"nsp":"/"} +1ms
  socket.io-parser encoding packet {"id":42,"type":3,"data":[{}],"nsp":"/"} +1ms
  socket.io-parser encoded {"id":42,"type":3,"data":[{}],"nsp":"/"} as 342[{}] +0ms
  engine:socket sending packet "message" (342[{}]) +1ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "4342[{}]" +1ms
  engine:ws received "4243["backend:request","resolve:url","http://localhost:8080/commands/actions",{"auth":null,"failOnStatusCode":true,"retryOnNetworkFailure":true,"retryOnStatusCodeFailure":false,"method":"GET","body":null,"headers":{},"timeout":30000}]" +16ms
  engine:socket packet +16ms
  socket.io-parser decoded 243["backend:request","resolve:url","http://localhost:8080/commands/actions",{"auth":null,"failOnStatusCode":true,"retryOnNetworkFailure":true,"retryOnStatusCodeFailure":false,"method":"GET","body":null,"headers":{},"timeout":30000}] as {"type":2,"nsp":"/","id":43,"data":["backend:request","resolve:url","http://localhost:8080/commands/actions",{"auth":null,"failOnStatusCode":true,"retryOnNetworkFailure":true,"retryOnStatusCodeFailure":false,"method":"GET","body":null,"headers":{},"timeout":30000}]} +17ms
  socket.io:socket got packet {"type":2,"nsp":"/","id":43,"data":["backend:request","resolve:url","http://localhost:8080/commands/actions",{"auth":null,"failOnStatusCode":true,"retryOnNetworkFailure":true,"retryOnStatusCodeFailure":false,"method":"GET","body":null,"headers":{},"timeout":30000}]} +17ms
  socket.io:socket emitting event ["backend:request","resolve:url","http://localhost:8080/commands/actions",{"auth":null,"failOnStatusCode":true,"retryOnNetworkFailure":true,"retryOnStatusCodeFailure":false,"method":"GET","body":null,"headers":{},"timeout":30000}] +0ms
  socket.io:socket attaching ack callback to event +0ms
  socket.io:socket dispatching an event ["backend:request","resolve:url","http://localhost:8080/commands/actions",{"auth":null,"failOnStatusCode":true,"retryOnNetworkFailure":true,"retryOnStatusCodeFailure":false,"method":"GET","body":null,"headers":{},"timeout":30000},null] +0ms
  cypress:server:socket backend:request { eventName: 'resolve:url', args: [ 'http://localhost:8080/commands/actions', { auth: null, failOnStatusCode: true, retryOnNetworkFailure: true, retryOnStatusCodeFailure: false, method: 'GET', body: null, headers: {}, timeout: 30000 } ] } +17ms
  cypress:server:server resolving visit { url: 'http://localhost:8080/commands/actions', headers: { host: 'localhost:8080', connection: 'Upgrade', pragma: 'no-cache', 'cache-control': 'no-cache', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', upgrade: 'websocket', origin: 'http://localhost:8080', 'sec-websocket-version': '13', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US', 'sec-websocket-key': '5DGaWx6acL7eRCburWXuCg==', 'sec-websocket-extensions': 'permessage-deflate; client_max_window_bits' }, options: { auth: null, failOnStatusCode: true, retryOnNetworkFailure: true, retryOnStatusCodeFailure: false, method: 'GET', body: null, headers: {}, timeout: 30000 } } +157ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +1ms
  cypress:server:server sending request with options { auth: null, failOnStatusCode: true, retryOnNetworkFailure: true, retryOnStatusCodeFailure: false, method: 'GET', body: null, headers: { accept: 'text/html,*/*' }, timeout: 30000, gzip: false, url: 'http://localhost:8080/commands/actions', onBeforeReqInit: [Function: runPhase], followRedirect: [Function: followRedirect] } +0ms
  cypress:server:cookies getting:cookies { url: 'http://localhost:8080/commands/actions' } +20ms
  cypress:server:cookies received get:cookies [] +1ms
  cypress:server:request got cookies from browser { reqUrl: 'http://localhost:8080/commands/actions', cookies: [] } +152ms
  cypress:server:request sending request as stream { auth: null, failOnStatusCode: true, retryOnNetworkFailure: true, retryOnStatusCodeFailure: false, method: 'GET', body: null, headers: { accept: 'text/html,*/*', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', Cookie: undefined }, timeout: 30000, gzip: false, url: 'http://localhost:8080/commands/actions', onBeforeReqInit: [Function: runPhase] } +0ms
  cypress:network:agent addRequest called { isHttps: false, href: 'http://localhost:8080/commands/actions' } +158ms
  cypress:network:agent got family { family: 4, href: 'http://localhost:8080/commands/actions' } +1ms
  cypress:server:request received status code on request { requestId: 'request109', statusCode: 200 } +5ms
  cypress:server:request successful response received { requestId: 'request109' } +0ms
  cypress:server:server resolve:url headers received, buffering response { headers: { 'content-length': '28291', 'content-disposition': 'inline; filename="actions.html"', 'accept-ranges': 'bytes', etag: '"039d0311df5f1649899cb1e88dd12288662ea240"', 'content-type': 'text/html; charset=utf-8', 'cache-control': 'no-cache', vary: 'Accept-Encoding', date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 200 } +6ms
  cypress:server:cors Parsed URL { port: '8080', tld: 'localhost', domain: '' } +221ms
  cypress:server:cookies getting:cookies { domain: 'localhost' } +7ms
  cypress:server:cookies received get:cookies [] +0ms
  cypress:server:server setting details resolving url { isOkStatusCode: true, contentType: 'text/html', url: 'http://localhost:8080/commands/actions', status: 200, cookies: [], statusText: 'OK', redirects: [], originalUrl: 'http://localhost:8080/commands/actions' } +3ms
  cypress:server:server resolve:url response ended, setting buffer { newUrl: 'http://localhost:8080/commands/actions', details: { isOkStatusCode: true, contentType: 'text/html', url: 'http://localhost:8080/commands/actions', status: 200, cookies: [], statusText: 'OK', redirects: [], originalUrl: 'http://localhost:8080/commands/actions', isHtml: true } } +0ms
  cypress:server:server Setting remoteAuth null +0ms
  cypress:server:cors Parsed URL { port: '8080', tld: 'localhost', domain: '' } +2ms
  cypress:server:server Setting remoteOrigin http://localhost:8080 +1ms
  cypress:server:server Setting remoteHostAndPort { port: '8080', tld: 'localhost', domain: '' } +0ms
  cypress:server:server Setting remoteDocDomain localhost +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +0ms
  socket.io:socket sending ack [{"response":{"isOkStatusCode":true,"contentType":"text/html","url":"http://localhost:8080/commands/actions","status":200,"cookies":[],"statusText":"OK","redirects":[],"originalUrl":"http://localhost:8080/commands/actions","isHtml":true,"totalTime":9}}] +11ms
  socket.io:client writing packet {"id":43,"type":3,"data":[{"response":{"isOkStatusCode":true,"contentType":"text/html","url":"http://localhost:8080/commands/actions","status":200,"cookies":[],"statusText":"OK","redirects":[],"originalUrl":"http://localhost:8080/commands/actions","isHtml":true,"totalTime":9}}],"nsp":"/"} +29ms
  socket.io-parser encoding packet {"id":43,"type":3,"data":[{"response":{"isOkStatusCode":true,"contentType":"text/html","url":"http://localhost:8080/commands/actions","status":200,"cookies":[],"statusText":"OK","redirects":[],"originalUrl":"http://localhost:8080/commands/actions","isHtml":true,"totalTime":9}}],"nsp":"/"} +12ms
  socket.io-parser encoded {"id":43,"type":3,"data":[{"response":{"isOkStatusCode":true,"contentType":"text/html","url":"http://localhost:8080/commands/actions","status":200,"cookies":[],"statusText":"OK","redirects":[],"originalUrl":"http://localhost:8080/commands/actions","isHtml":true,"totalTime":9}}],"nsp":"/"} as 343[{"response":{"isOkStatusCode":true,"contentType":"text/html","url":"http://localhost:8080/commands/actions","status":200,"cookies":[],"statusText":"OK","redirects":[],"originalUrl":"http://localhost:8080/commands/actions","isHtml":true,"totalTime":9}}] +0ms
  engine:socket sending packet "message" (343[{"response":{"isOkStatusCode":true,"contentType":"text/html","url":"http://localhost:8080/commands/actions","status":200,"cookies":[],"statusText":"OK","redirects":[],"originalUrl":"http://localhost:8080/commands/actions","isHtml":true,"totalTime":9}}]) +13ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "4343[{"response":{"isOkStatusCode":true,"contentType":"text/html","url":"http://localhost:8080/commands/actions","status":200,"cookies":[],"statusText":"OK","redirects":[],"originalUrl":"http://localhost:8080/commands/actions","isHtml":true,"totalTime":9}}]" +13ms
  express:router dispatching GET /commands/actions +176ms
  express:router query  : /commands/actions +0ms
  express:router expressInit  : /commands/actions +0ms
  express:router <anonymous>  : /commands/actions +0ms
  express:router cookieParser  : /commands/actions +0ms
  express:router compression  : /commands/actions +0ms
  express:router errorHandler  : /commands/actions +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +9ms
  cypress:server:proxy handling proxied request { url: '/commands/actions', proxiedUrl: 'http://localhost:8080/commands/actions', headers: { host: 'localhost:8080', 'proxy-connection': 'keep-alive', 'upgrade-insecure-requests': '1', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', referer: 'http://localhost:8080/__/', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US', cookie: '__cypress.initial=true' }, remoteState: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } } +170ms
  cypress:server:buffers found request buffer { buffer: { url: 'http://localhost:8080/commands/actions', originalUrl: 'http://localhost:8080/commands/actions' }, bufferCount: 0 } +220ms
  cypress:server:proxy received response for { url: 'http://localhost:8080/commands/actions', headers: { 'content-length': '28291', 'content-disposition': 'inline; filename="actions.html"', 'accept-ranges': 'bytes', etag: '"039d0311df5f1649899cb1e88dd12288662ea240"', 'content-type': 'text/html; charset=utf-8', 'cache-control': 'no-cache', vary: 'Accept-Encoding', date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 200, isGzipped: undefined, wantsInjection: 'full', wantsSecurityRemoved: true } +1ms
  cypress:server:proxy inferred charset from response { httpCharset: 'utf8' } +0ms
  compression gzip compression +172ms
  express:router dispatching GET /assets/css/vendor/bootstrap.min.css +16ms
  express:router query  : /assets/css/vendor/bootstrap.min.css +0ms
  express:router expressInit  : /assets/css/vendor/bootstrap.min.css +0ms
  express:router <anonymous>  : /assets/css/vendor/bootstrap.min.css +0ms
  express:router cookieParser  : /assets/css/vendor/bootstrap.min.css +0ms
  express:router compression  : /assets/css/vendor/bootstrap.min.css +0ms
  express:router errorHandler  : /assets/css/vendor/bootstrap.min.css +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +16ms
  cypress:server:proxy handling proxied request { url: '/assets/css/vendor/bootstrap.min.css', proxiedUrl: 'http://localhost:8080/assets/css/vendor/bootstrap.min.css', headers: { host: 'localhost:8080', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', 'if-none-match': '"7063fe53563e81579f05b108d594431ff31a426d"', accept: 'text/css,*/*;q=0.1', referer: 'http://localhost:8080/commands/actions', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US' }, remoteState: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } } +15ms
  cypress:network:agent addRequest called { isHttps: false, href: 'http://localhost:8080/assets/css/vendor/bootstrap.min.css' } +33ms
  cypress:network:agent got family { family: 4, href: 'http://localhost:8080/assets/css/vendor/bootstrap.min.css' } +1ms
  cypress:server:stream_buffer stream buffer writeable final called +193ms
  express:router dispatching GET /assets/css/vendor/fira.css +3ms
  express:router query  : /assets/css/vendor/fira.css +1ms
  express:router expressInit  : /assets/css/vendor/fira.css +0ms
  express:router <anonymous>  : /assets/css/vendor/fira.css +0ms
  express:router cookieParser  : /assets/css/vendor/fira.css +0ms
  express:router compression  : /assets/css/vendor/fira.css +0ms
  express:router errorHandler  : /assets/css/vendor/fira.css +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +3ms
  cypress:server:proxy handling proxied request { url: '/assets/css/vendor/fira.css', proxiedUrl: 'http://localhost:8080/assets/css/vendor/fira.css', headers: { host: 'localhost:8080', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', 'if-none-match': '"bf0df3ac01f602a5c4874b7fcb432fd6f2257325"', accept: 'text/css,*/*;q=0.1', referer: 'http://localhost:8080/commands/actions', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US' }, remoteState: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } } +3ms
  cypress:network:agent addRequest called { isHttps: false, href: 'http://localhost:8080/assets/css/vendor/fira.css' } +3ms
  cypress:network:agent got family { family: 4, href: 'http://localhost:8080/assets/css/vendor/fira.css' } +0ms
  cypress:server:stream_buffer stream buffer writeable final called +3ms
  express:router dispatching GET /assets/css/styles.css +2ms
  express:router query  : /assets/css/styles.css +1ms
  express:router expressInit  : /assets/css/styles.css +0ms
  express:router <anonymous>  : /assets/css/styles.css +0ms
  express:router cookieParser  : /assets/css/styles.css +0ms
  express:router compression  : /assets/css/styles.css +0ms
  express:router errorHandler  : /assets/css/styles.css +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +3ms
  cypress:server:proxy handling proxied request { url: '/assets/css/styles.css', proxiedUrl: 'http://localhost:8080/assets/css/styles.css', headers: { host: 'localhost:8080', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', 'if-none-match': '"c2f559ea261d321a9f9bac2a3eaca6d6422881aa"', accept: 'text/css,*/*;q=0.1', referer: 'http://localhost:8080/commands/actions', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US' }, remoteState: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } } +3ms
  cypress:network:agent addRequest called { isHttps: false, href: 'http://localhost:8080/assets/css/styles.css' } +2ms
  cypress:network:agent got family { family: 4, href: 'http://localhost:8080/assets/css/styles.css' } +0ms
  cypress:server:stream_buffer stream buffer writeable final called +3ms
  express:router dispatching GET /assets/js/vendor/jquery-1.12.0.min.js +2ms
  express:router query  : /assets/js/vendor/jquery-1.12.0.min.js +0ms
  express:router expressInit  : /assets/js/vendor/jquery-1.12.0.min.js +0ms
  express:router <anonymous>  : /assets/js/vendor/jquery-1.12.0.min.js +0ms
  express:router cookieParser  : /assets/js/vendor/jquery-1.12.0.min.js +0ms
  express:router compression  : /assets/js/vendor/jquery-1.12.0.min.js +0ms
  express:router errorHandler  : /assets/js/vendor/jquery-1.12.0.min.js +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +2ms
  cypress:server:proxy handling proxied request { url: '/assets/js/vendor/jquery-1.12.0.min.js', proxiedUrl: 'http://localhost:8080/assets/js/vendor/jquery-1.12.0.min.js', headers: { host: 'localhost:8080', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', 'if-none-match': '"4781683780c5d8643b799f4176c0247bd83ea920"', accept: '*/*', referer: 'http://localhost:8080/commands/actions', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US' }, remoteState: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } } +3ms
  cypress:network:agent addRequest called { isHttps: false, href: 'http://localhost:8080/assets/js/vendor/jquery-1.12.0.min.js' } +3ms
  cypress:network:agent got family { family: 4, href: 'http://localhost:8080/assets/js/vendor/jquery-1.12.0.min.js' } +0ms
  cypress:server:stream_buffer stream buffer writeable final called +2ms
  express:router dispatching GET /assets/js/vendor/bootstrap.min.js +3ms
  express:router query  : /assets/js/vendor/bootstrap.min.js +0ms
  express:router expressInit  : /assets/js/vendor/bootstrap.min.js +0ms
  express:router <anonymous>  : /assets/js/vendor/bootstrap.min.js +0ms
  express:router cookieParser  : /assets/js/vendor/bootstrap.min.js +0ms
  express:router compression  : /assets/js/vendor/bootstrap.min.js +0ms
  express:router errorHandler  : /assets/js/vendor/bootstrap.min.js +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +3ms
  cypress:server:proxy handling proxied request { url: '/assets/js/vendor/bootstrap.min.js', proxiedUrl: 'http://localhost:8080/assets/js/vendor/bootstrap.min.js', headers: { host: 'localhost:8080', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', 'if-none-match': '"c768e3633137e01f974210b6d559c2fb63dba298"', accept: '*/*', referer: 'http://localhost:8080/commands/actions', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US' }, remoteState: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } } +2ms
  cypress:network:agent addRequest called { isHttps: false, href: 'http://localhost:8080/assets/js/vendor/bootstrap.min.js' } +2ms
  cypress:network:agent got family { family: 4, href: 'http://localhost:8080/assets/js/vendor/bootstrap.min.js' } +1ms
  cypress:server:stream_buffer stream buffer writeable final called +3ms
  express:router dispatching GET /assets/js/vendor/highlight.pack.js +2ms
  express:router query  : /assets/js/vendor/highlight.pack.js +0ms
  express:router expressInit  : /assets/js/vendor/highlight.pack.js +0ms
  express:router <anonymous>  : /assets/js/vendor/highlight.pack.js +0ms
  express:router cookieParser  : /assets/js/vendor/highlight.pack.js +0ms
  express:router compression  : /assets/js/vendor/highlight.pack.js +1ms
  express:router errorHandler  : /assets/js/vendor/highlight.pack.js +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +3ms
  cypress:server:proxy handling proxied request { url: '/assets/js/vendor/highlight.pack.js', proxiedUrl: 'http://localhost:8080/assets/js/vendor/highlight.pack.js', headers: { host: 'localhost:8080', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', 'if-none-match': '"96014c69f992e481a32f1b54112b60fc41fae19a"', accept: '*/*', referer: 'http://localhost:8080/commands/actions', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US' }, remoteState: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } } +3ms
  cypress:network:agent addRequest called { isHttps: false, href: 'http://localhost:8080/assets/js/vendor/highlight.pack.js' } +2ms
  cypress:network:agent got family { family: 4, href: 'http://localhost:8080/assets/js/vendor/highlight.pack.js' } +0ms
  cypress:server:stream_buffer stream buffer writeable final called +2ms
  cypress:server:request received status code on request { requestId: 'request110', statusCode: 304 } +46ms
  cypress:server:request successful response received { requestId: 'request110' } +0ms
  cypress:server:proxy received response for { url: 'http://localhost:8080/assets/css/vendor/bootstrap.min.css', headers: { date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 304, isGzipped: undefined, wantsInjection: false, wantsSecurityRemoved: false } +3ms
  compression undefined not compressible +32ms
  compression no compression: filtered +0ms
  cypress:server:request received status code on request { requestId: 'request111', statusCode: 304 } +1ms
  cypress:server:request successful response received { requestId: 'request111' } +0ms
  cypress:server:proxy received response for { url: 'http://localhost:8080/assets/css/vendor/fira.css', headers: { date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 304, isGzipped: undefined, wantsInjection: false, wantsSecurityRemoved: false } +2ms
  compression undefined not compressible +1ms
  compression no compression: filtered +0ms
  cypress:server:request received status code on request { requestId: 'request112', statusCode: 304 } +1ms
  cypress:server:request successful response received { requestId: 'request112' } +0ms
  cypress:server:proxy received response for { url: 'http://localhost:8080/assets/css/styles.css', headers: { date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 304, isGzipped: undefined, wantsInjection: false, wantsSecurityRemoved: false } +1ms
  compression undefined not compressible +1ms
  compression no compression: filtered +0ms
  cypress:server:request received status code on request { requestId: 'request113', statusCode: 304 } +1ms
  cypress:server:request successful response received { requestId: 'request113' } +1ms
  cypress:server:proxy received response for { url: 'http://localhost:8080/assets/js/vendor/jquery-1.12.0.min.js', headers: { date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 304, isGzipped: undefined, wantsInjection: false, wantsSecurityRemoved: false } +1ms
  compression undefined not compressible +1ms
  compression no compression: filtered +0ms
  cypress:server:request received status code on request { requestId: 'request114', statusCode: 304 } +1ms
  cypress:server:request successful response received { requestId: 'request114' } +0ms
  cypress:server:proxy received response for { url: 'http://localhost:8080/assets/js/vendor/bootstrap.min.js', headers: { date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 304, isGzipped: undefined, wantsInjection: false, wantsSecurityRemoved: false } +1ms
  compression undefined not compressible +1ms
  compression no compression: filtered +0ms
  cypress:server:request received status code on request { requestId: 'request115', statusCode: 304 } +1ms
  cypress:server:request successful response received { requestId: 'request115' } +0ms
  cypress:server:proxy received response for { url: 'http://localhost:8080/assets/js/vendor/highlight.pack.js', headers: { date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 304, isGzipped: undefined, wantsInjection: false, wantsSecurityRemoved: false } +1ms
  compression undefined not compressible +2ms
  compression no compression: filtered +0ms
  express:router dispatching GET /assets/js/scripts.js +10ms
  express:router query  : /assets/js/scripts.js +0ms
  express:router expressInit  : /assets/js/scripts.js +0ms
  express:router <anonymous>  : /assets/js/scripts.js +0ms
  express:router cookieParser  : /assets/js/scripts.js +0ms
  express:router compression  : /assets/js/scripts.js +1ms
  express:router errorHandler  : /assets/js/scripts.js +0ms
  cypress:server:server Getting remote state: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } +11ms
  cypress:server:proxy handling proxied request { url: '/assets/js/scripts.js', proxiedUrl: 'http://localhost:8080/assets/js/scripts.js', headers: { host: 'localhost:8080', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/3.6.0 Chrome/73.0.3683.121 Electron/5.0.10 Safari/537.36', 'if-none-match': '"2dcbe00c9df1e3c2bc589c45574229a444725ca4"', accept: '*/*', referer: 'http://localhost:8080/commands/actions', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US' }, remoteState: { auth: null, props: { port: '8080', tld: 'localhost', domain: '' }, origin: 'http://localhost:8080', strategy: 'http', visiting: false, domainName: 'localhost', fileServer: null } } +2ms
  cypress:network:agent addRequest called { isHttps: false, href: 'http://localhost:8080/assets/js/scripts.js' } +11ms
  cypress:network:agent got family { family: 4, href: 'http://localhost:8080/assets/js/scripts.js' } +0ms
  cypress:server:stream_buffer stream buffer writeable final called +12ms
  cypress:server:request received status code on request { requestId: 'request116', statusCode: 304 } +6ms
  cypress:server:request successful response received { requestId: 'request116' } +0ms
  cypress:server:proxy received response for { url: 'http://localhost:8080/assets/js/scripts.js', headers: { date: 'Mon, 04 Nov 2019 14:59:25 GMT', connection: 'keep-alive' }, statusCode: 304, isGzipped: undefined, wantsInjection: false, wantsSecurityRemoved: false } +5ms
  compression undefined not compressible +6ms
  compression no compression: filtered +0ms
  engine:ws received "42["mocha","hook end",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":162}]" +122ms
  engine:socket packet +122ms
  socket.io-parser decoded 2["mocha","hook end",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":162}] as {"type":2,"nsp":"/","data":["mocha","hook end",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":162}]} +123ms
  socket.io:socket got packet {"type":2,"nsp":"/","data":["mocha","hook end",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":162}]} +124ms
  socket.io:socket emitting event ["mocha","hook end",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":162}] +0ms
  socket.io:socket dispatching an event ["mocha","hook end",{"id":"r16","title":"\"before each\" hook","hookName":"before each","hookId":"h1","body":"function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }","type":"hook","duration":162}] +0ms
  cypress:server:project onMocha hook end +156ms
  cypress:server:reporter got mocha event 'hook end' with args: [ { id: 'r16', title: '"before each" hook', hookName: 'before each', hookId: 'h1', body: "function () {\n    cy.visit('http://localhost:8080/commands/actions');\n  }", type: 'hook', duration: 162 } ] +156ms
  engine:ws received "2" +11s
  engine:socket packet +11s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +1ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +1ms
  engine:ws received "2" +25s
  engine:socket packet +25s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +0ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +0ms
  engine:ws received "2" +25s
  engine:socket packet +25s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +0ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +0ms
  engine:ws received "2" +25s
  engine:socket packet +25s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +0ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +0ms
^[[B  engine:ws received "2" +25s
  engine:socket packet +25s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +0ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +0ms

  engine:ws received "2" +25s
  engine:socket packet +25s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +0ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +0ms

and it just repeats

engine:ws received "2" +25s
  engine:socket packet +25s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +0ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +0ms
  engine:ws received "2" +25s
  engine:socket packet +25s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +0ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +0ms
  engine:ws received "2" +25s
  engine:socket packet +25s
  engine:socket got ping +0ms
  engine:socket sending packet "pong" (undefined) +0ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "3" +0ms
bahmutov commented 4 years ago

Additional information: I have experimented with Circle Windows in https://github.com/cypress-io/cypress-test-tiny/pull/49/ and have noticed that the build only hangs if there is cy.visit(). Here are the builds with DEBUG=*

Another observation for another day - it seems the successful process is hanging AFTER finishing tests with the last lines

  socket.io-parser encoding packet {"type":2,"data":["tests:finished"],"nsp":"/"} +2ms
  socket.io-parser encoded {"type":2,"data":["tests:finished"],"nsp":"/"} as 2["tests:finished"] +0ms
  socket.io:client writing packet ["2[\"tests:finished\"]"] +434ms
  engine:socket sending packet "message" (2["tests:finished"]) +3ms
  engine:socket flushing buffer to transport +0ms
  engine:ws writing "42["tests:finished"]" +3ms

  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        1                                                                                │
  │ Passing:      1                                                                                │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        true                                                                             │
  │ Duration:     0 seconds                                                                        │
  │ Spec Ran:     spec.js                                                                          │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘

  cypress:server:run attempting to close the browser +3s
  cypress:server:browsers killing browser process +3s

which might be resolved by https://github.com/cypress-io/cypress/pull/5603

jennifer-shehane commented 4 years ago

We have bumped Kitchensink down to Cypress version 3.4.1 and this passes, so the hanging is isolated to Cypress 3.5.0. I believe this is the same issue detailed in https://github.com/cypress-io/cypress/issues/5475

gabbersepp commented 4 years ago

hey we have the same issue since we updated from 3.4.1 to 3.6.1 in our jenkins CI. I will downgrade to 3.4.1 until a solution is found.

I think it is the same error:

image

Is there any workaround? Can I assist somehow?

We are using Windows Server.

gabbersepp commented 4 years ago

On jenkins it is executed as SYSTEM user. It seems to work when I start the tests with my local account on this server. Does this make a difference?

//Edit: I replaced everything in C:\Windows\System32\config\systemprofile\AppData\Local\Cypress\Cache\3.7.0\Cypress with C:\Users\jbiehler\AppData\Local\Cypress\Cache\3.7.0\Cypress. This should remove everything user specific that may happen during install of cypress I think. But it did not help.

Are there any other files that are generated based on the current user?

//Edit2: OK I tried to remove the line const chromePolicyCheck = require('../util/chrome_policy_check') in packages/server/lib/run.js and the job now seems to run properly but stops without any message.

gabbersepp commented 4 years ago

fyi: I was able to resolve the problem by updating to cypress 3.8.0.

flotwig commented 4 years ago

Yes, this was fixed by upgrading Electron in 3.8.0: #5852