Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cypress.run module api throws "Error running proxy middleware: Cannot call this.next() more than once in the same middleware function." #22825

Closed
JohnnyFun opened this issue Jul 17, 2022 · 27 comments · Fixed by #25702
Assignees
Labels
CT Issue related to component testing type: bug

Comments

@JohnnyFun
Copy link

Current behavior

Running multiple cypress.run module api commands on the same machine might be the cause.
It seems to be a race condition, so it doesn't happen every time.

Error running proxy middleware: Cannot call this.next() more than once in the same middleware function. Doing so can cause unintended issues.
2022-07-16T23:56:40.4895771Z Error: Error running proxy middleware: Cannot call this.next() more than once in the same middleware function. Doing so can cause unintended issues.
2022-07-16T23:56:40.4896661Z     at Object.fullCtx.next (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:78:31)
2022-07-16T23:56:40.4897377Z     at Object.callback (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:70:14)
2022-07-16T23:56:40.4898194Z     at PreRequests.addPending (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\util\prerequests.js:56:39)
2022-07-16T23:56:40.4898910Z     at Http.addPendingBrowserPreRequest (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:229:26)
2022-07-16T23:56:40.4899576Z     at onError (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:198:22)
2022-07-16T23:56:40.4900214Z     at Object.onError (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:95:21)
2022-07-16T23:56:40.4901100Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:107:25
2022-07-16T23:56:40.4901754Z     at Promise._execute (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
2022-07-16T23:56:40.4902506Z     at Promise._resolveFromExecutor (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
2022-07-16T23:56:40.4903205Z     at new Promise (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
2022-07-16T23:56:40.4903903Z     at runMiddlewareStack (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
2022-07-16T23:56:40.4904541Z     at Object.next (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
2022-07-16T23:56:40.4905233Z     at Object.MaybeSetBasicAuthHeaders (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:136:10)
2022-07-16T23:56:40.4905899Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
2022-07-16T23:56:40.4906643Z     at Promise._execute (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
2022-07-16T23:56:40.4907377Z     at Promise._resolveFromExecutor (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
2022-07-16T23:56:40.4908075Z     at new Promise (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
2022-07-16T23:56:40.4908733Z     at runMiddlewareStack (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
2022-07-16T23:56:40.4909377Z     at Object.next (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
2022-07-16T23:56:40.4910076Z     at Object.StripUnsupportedAcceptEncoding (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:122:10)
2022-07-16T23:56:40.4910752Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
2022-07-16T23:56:40.4911403Z     at Promise._execute (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
2022-07-16T23:56:40.4912118Z     at Promise._resolveFromExecutor (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
2022-07-16T23:56:40.4912831Z     at new Promise (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
2022-07-16T23:56:40.4913490Z     at runMiddlewareStack (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
2022-07-16T23:56:40.4914130Z     at Object.next (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
2022-07-16T23:56:40.4914817Z     at Object.EndRequestsToBlockedHosts (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:109:10)
2022-07-16T23:56:40.4915484Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
2022-07-16T23:56:40.4916130Z     at Promise._execute (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
2022-07-16T23:56:40.4916843Z     at Promise._resolveFromExecutor (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
2022-07-16T23:56:40.4917603Z     at new Promise (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
2022-07-16T23:56:40.4918254Z     at runMiddlewareStack (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
2022-07-16T23:56:40.4918908Z     at Object.next (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
2022-07-16T23:56:40.4919605Z     at Object.RedirectToClientRouteIfUnloaded (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:96:10)
2022-07-16T23:56:40.4920280Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
2022-07-16T23:56:40.4920926Z     at Promise._execute (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
2022-07-16T23:56:40.4921644Z     at Promise._resolveFromExecutor (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
2022-07-16T23:56:40.4922353Z     at new Promise (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
2022-07-16T23:56:40.4923074Z     at runMiddlewareStack (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
2022-07-16T23:56:40.4923716Z     at Object.next (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
2022-07-16T23:56:40.4924420Z     at Object.InterceptRequest (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\net-stubbing\lib\server\middleware\request.js:43:21)
2022-07-16T23:56:40.4925106Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
2022-07-16T23:56:40.4925760Z     at Promise._execute (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
2022-07-16T23:56:40.4926478Z     at Promise._resolveFromExecutor (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
2022-07-16T23:56:40.4927232Z     at new Promise (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
2022-07-16T23:56:40.4927894Z     at runMiddlewareStack (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
2022-07-16T23:56:40.4928536Z     at Object.next (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
2022-07-16T23:56:40.4929210Z     at Object.SendToDriver (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:78:10)
2022-07-16T23:56:40.4929880Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
2022-07-16T23:56:40.4930537Z     at Promise._execute (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
2022-07-16T23:56:40.4931260Z     at Promise._resolveFromExecutor (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
2022-07-16T23:56:40.4931961Z     at new Promise (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
2022-07-16T23:56:40.4932666Z     at runMiddlewareStack (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
2022-07-16T23:56:40.4933304Z     at Object.next (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
2022-07-16T23:56:40.4934034Z     at Object.callback (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:70:14)
2022-07-16T23:56:40.4934732Z     at PreRequests.addPending (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\util\prerequests.js:56:39)
2022-07-16T23:56:40.4935440Z     at Http.addPendingBrowserPreRequest (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:229:26)
2022-07-16T23:56:40.4936220Z     at NetworkProxy.addPendingBrowserPreRequest (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\network-proxy.js:10:19)
2022-07-16T23:56:40.4936946Z     at ServerCt.addBrowserPreRequest (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\server-base.js:252:27)
2022-07-16T23:56:40.4937681Z     at Automation.onBrowserPreRequest (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\project-base.js:245:25)
2022-07-16T23:56:40.4938438Z     at Chrome.CdpAutomation.onNetworkRequestWillBeSent (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\browsers\cdp_automation.js:170:103)
2022-07-16T23:56:40.4939070Z     at Chrome.emit (node:events:390:28)
2022-07-16T23:56:40.4939396Z     at Chrome.emit (node:domain:475:12)
2022-07-16T23:56:40.4939929Z     at Chrome._handleMessage (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\chrome-remote-interface\lib\chrome.js:272:18)
2022-07-16T23:56:40.4940659Z     at WebSocket.<anonymous> (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\chrome-remote-interface\lib\chrome.js:235:22)
2022-07-16T23:56:40.4941186Z     at WebSocket.emit (node:events:390:28)
2022-07-16T23:56:40.4941525Z     at WebSocket.emit (node:domain:475:12)
2022-07-16T23:56:40.4942128Z     at Receiver.receiverOnMessage (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\chrome-remote-interface\node_modules\ws\lib\websocket.js:1047:20)
2022-07-16T23:56:40.4943291Z     at Receiver.emit (node:events:390:28)
2022-07-16T23:56:40.4943687Z     at Receiver.emit (node:domain:475:12)
2022-07-16T23:56:40.4944277Z     at Receiver.dataMessage (C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\chrome-remote-interface\node_modules\ws\lib\receiver.js:517:14)
2022-07-16T23:56:40.4945046Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\chrome-remote-interface\node_modules\ws\lib\receiver.js:468:23
2022-07-16T23:56:40.4945811Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\chrome-remote-interface\node_modules\ws\lib\permessage-deflate.js:308:9
2022-07-16T23:56:40.4946567Z     at C:\Users\Buildy\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\chrome-remote-interface\node_modules\ws\lib\permessage-deflate.js:391:7
2022-07-16T23:56:40.4947131Z     at afterWrite (node:internal/streams/writable:497:5)
2022-07-16T23:56:40.4947501Z     at onwrite (node:internal/streams/writable:477:7)
2022-07-16T23:56:40.4947892Z     at Zlib.cb (node:internal/streams/transform:201:7)
2022-07-16T23:56:40.4948275Z     at Zlib.processCallback (node:zlib:612:8)

Desired behavior

No response

Test code to reproduce

If the stack trace above doesn't lead you directly to what's up, let me know and I can setup a repo that'll call cypress.run like 5 times and hopefully reproduce the error consistently.

Cypress Version

10.3.0

Other

No response

@nagash77
Copy link
Contributor

@JohnnyFun in order to properly investigate this, it would be helpful if you could share either a repo containing an example spec or a simplified code snippet that helps us to replicate the issue internally.

@nagash77 nagash77 self-assigned this Jul 18, 2022
@cypress-bot cypress-bot bot added the stage: awaiting response Potential fix was proposed; awaiting response label Jul 18, 2022
@JohnnyFun
Copy link
Author

I'm trying to reduce it down to simplest scenario.
It only affects my component tests, not my e2e tests. My component tests use a webpack dev server:

devServer: {
  bundler: 'webpack',
  webpackConfig,
}

One thing I noticed is that it uses the devServer webpack port from my cypress.config.js file instead of my override value in my cypress.run config. To work around that, I just generate separate cypress.config-{port}.js files and set configFile accordingly in my cypress.run call.

If it rings any bells, the error that cypress.run fails with is "Could not find Cypress test run results". It fails even if I retry it 3 times with the same config. But if I run just one cypress.run for all specs, no issues occur. So I wonder if reporter or reporterOptions needs something different with latest cypress@10.x from 9.x.

@JohnnyFun
Copy link
Author

I'll try to get a repo or PR that resolves the issue. Worst case scenario, I'll just run my component tests with a single cypress.run call for now.

@JohnnyFun
Copy link
Author

Maybe related, but what is global and detached mode? https://docs.cypress.io/guides/guides/module-api#Options-1

@JohnnyFun
Copy link
Author

Getting closer. It's an error in the error handling code, so the underlying issue was hidden, which was:

TypeError: Cannot read properties of null (reading 'token')
    at Object.getFileServerToken (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\server-base.js:215:37)
    at Object.SendRequestOutgoing (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:150:60)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.MaybeSetBasicAuthHeaders (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:136:10)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.StripUnsupportedAcceptEncoding (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:122:10)   
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.EndRequestsToBlockedHosts (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:109:10)        
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.RedirectToClientRouteIfUnloaded (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:96:10)   
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.InterceptRequest (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\net-stubbing\lib\server\middleware\request.js:43:21)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.SendToDriver (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:78:10)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:70:14
    at PreRequests.get (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\util\prerequests.js:69:13)
    at Object.getPreRequest (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:188:34)
    at Object.CorrelateBrowserPreRequest (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:68:10)        
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.MaybeEndRequestWithBufferedResponse (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:87:10)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.MaybeAttachCrossOriginCookies (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:28:21)     
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.ExtractIsAUTFrameHeader (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:23:10)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at Object.next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:81:26)
    at Object.LogRequest (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\request-middleware.js:16:10)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:104:28
    at Promise._execute (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:483:18)
    at new Promise (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\bluebird\js\release\promise.js:79:10)
    at runMiddlewareStack (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:52:16)
    at _runStage (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:113:12)
    at Http.handle (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\http\index.js:203:16)
    at NetworkProxy.handleHttpRequest (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\proxy\lib\network-proxy.js:13:19)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\routes.js:73:22
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:281:22
    at param (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:354:14)
    at param (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:365:14)
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:410:3)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:174:3)
    at router (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:47:12)
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:635:15
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:260:14)
    at Function.handle (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:174:3)
    at router (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:47:12)
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:91:12)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at compression (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\compression\index.js:220:5)
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at cookieParser (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\cookie-parser\index.js:57:14)
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\server-base.js:53:16
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\server-base.js:187:20
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at expressInit (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\middleware\init.js:40:5)
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at query (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\middleware\query.js:45:5)
    at Layer.handle [as handle_request] (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\router\index.js:174:3)
    at Function.handle (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\application.js:174:10)
    at Server.app (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\node_modules\express\lib\express.js:39:9)
    at Server.<anonymous> (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\socket\node_modules\socket.io\node_modules\engine.io\lib\server.js:422:24)
    at C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\server-base.js:281:29
    at Array.map (<anonymous>:null:null)
    at ServerCt._callRequestListeners (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\server-base.js:280:26)
    at Server.<anonymous> (C:\Users\john\AppData\Local\Cypress\Cache\10.3.0\Cypress\resources\app\packages\server\lib\server-base.js:297:18)
    at Server.emit (node:events:390:28)
    at Server.emit (node:domain:475:12)
    at parserOnIncoming (node:_http_server:951:12)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17)

at this line:

const getFileServerToken = () => {
    return this._fileServer.token;
};

@JohnnyFun
Copy link
Author

Looks like ServerCt doesn't set _fileServer like ServerE2E does

@JohnnyFun
Copy link
Author

I confirmed that if I null check that _fileServer in the getFileServerToken method, all my component tests run without the original error. And that without that null check, they consistently fail.

Let me know if you need anything else from me to resolve this one.

@JohnnyFun
Copy link
Author

I'm not sure if a null check is the correct resolution of course--just wanted to find a work around for me in the meantime. I'm not very familiar with the cypress codebase, so not sure if the component server class also needs a file server for something or not. Also, the error handling code should probably be fixed to not get that original .next() called twice error from the original stack trace of my post--that way the underlying error will get to the surface.

@JohnnyFun
Copy link
Author

In the meantime, I'll work around with this silly hack that just rewrites the file before running cypress.run lol:

// hack to fix parallel component tests until this issue is resolved: https://github.com/cypress-io/cypress/issues/22825
const cypressCodeFilePath = path.resolve(
  require('os').homedir(),
  'AppData/Local/Cypress/Cache/10.3.0/Cypress/resources/app/packages/server/lib/server-base.js'
)
let cypressCodeFileContents = await fs.promises.readFile(cypressCodeFilePath, 'utf8')
cypressCodeFileContents = cypressCodeFileContents.replace('this._fileServer.token', 'this._fileServer?.token')
await fs.promises.writeFile(cypressCodeFilePath, cypressCodeFileContents)

@cypress-bot cypress-bot bot added stage: investigating Someone from Cypress is looking into this and removed stage: awaiting response Potential fix was proposed; awaiting response labels Jul 19, 2022
@zack-pronto
Copy link

Thanks for debugging through this @JohnnyFun. I'm also experiencing this same issue. It only started once we upgraded to v10.3.0 😕 We had previously been on v9.1.1 and all of these same tests were running/passing just fine.

Here is one example failure:

CleanShot 2022-07-19 at 09 54 58

@JohnnyFun
Copy link
Author

Yep, same--my codebase was on latest cypress9.x and moving to 10.3. But yeah, my code from above should get you going for now at least--i.e. just putting a null check on that property in the cypress code. It also works if you just comment out that throw of that .next() error.

@JohnnyFun
Copy link
Author

Though if neither of those work for you, you might need to console.log or put a breakpoint in the initial catch. The "cannot call this.next()" error was an error in their error-handling code in my case.

@nagash77 nagash77 assigned mjhenkes and unassigned nagash77 Jul 19, 2022
@mjhenkes
Copy link
Member

Hey @JohnnyFun, Thanks for the investigation. I think you're on to something! Would it be possible for you to put together a recreate-able repo for me? That will allow us to verify any fix we implement. Generally, when I'm making reproduction I
start from this template repo: cypress-test-tiny

@cypress-bot cypress-bot bot added stage: awaiting response Potential fix was proposed; awaiting response and removed stage: investigating Someone from Cypress is looking into this labels Jul 19, 2022
JohnnyFun added a commit to JohnnyFun/cypress-issue-22825 that referenced this issue Jul 19, 2022
@JohnnyFun
Copy link
Author

Yar: https://github.com/JohnnyFun/cypress-issue-22825

Seems to be due to a component that calls fetch.
Happens with just 1 call to cypress.run.
Cypress UI simply shows a 404 to the webpack dev server, but cypress open fails with the exact error.

@JohnnyFun
Copy link
Author

Let me know if the error doesn't happen for you on your machine. I was honestly surprised I was able to simplify it down that much. Another potentially related thing I noticed is that it won't run if @cypress/webpack-preprocessor isn't installed, even though I don't explicitly use it in that repo anywhere. In my real codebase, I use it like so in the setupNodeEvents function of the cypress config: on('file:preprocessor', webpackPreprocessor({ webpackOptions: webpackConfig, watchOptions: {} }))

@cypress-bot cypress-bot bot added stage: investigating Someone from Cypress is looking into this and removed stage: awaiting response Potential fix was proposed; awaiting response labels Jul 20, 2022
@mjhenkes
Copy link
Member

@JohnnyFun, thanks for the reproduction. I am able to see the issue on my machine as well.

@JohnnyFun
Copy link
Author

Sweet, glad I could help. Long live Cypress!

@mjhenkes mjhenkes added the CT Issue related to component testing label Jul 20, 2022
@mjhenkes mjhenkes added type: bug stage: investigating Someone from Cypress is looking into this and removed stage: fire watch labels Jul 20, 2022
@mjhenkes mjhenkes removed their assignment Jul 21, 2022
@cypress-bot cypress-bot bot added stage: product backlog and removed stage: investigating Someone from Cypress is looking into this stage: routed to ct labels Sep 22, 2022
@baus
Copy link
Collaborator

baus commented Sep 27, 2022

@Vik0411
Copy link

Vik0411 commented Dec 27, 2022

Hi, has this been resolved pls? Am facing the same issue, but cant track it down as @JohnnyFun ... dont have any of the specified stuff on my project as for example "getFileServerToken" etc. Any ideas how to proceed?

@ccannawright
Copy link

ccannawright commented Jan 31, 2023

also checking in on progress here as we're seeing it on e2e and component tests. With one e2e test in particular we're seeing it happen because of a specific cy.intercept call. We are mocking the response after it comes back from the BE before it hits the browser. We're doing this with another call just before and that seems to not cause the issue. The only difference is the one with the issue has a forEach (we also tried changing it to a regular for loop but it still failed). It's causing the error listed here to occur on a random other spec, a different one each time. We are running all the tests in parallel when this occurs.

@mike-plummer mike-plummer self-assigned this Feb 1, 2023
@mike-plummer
Copy link
Contributor

Hi @Vik0411 and @ccannawright . I'm taking a look at this issue this week. The reproduction @JohnnyFun provided identified an error-handling issue specific to component tests that I'll be plugging, but if either of you have a reproduction case or a full Debug log you could share of this occurring in an e2e test that would be super helpful since there are likely other situations where we're inappropriately looping in our middleware error handling code

@mike-plummer
Copy link
Contributor

Improvements to error handling in this area will be included in our next release. The specific error case identified in the attached component testing reproduction has been fixed, and for any other lingering cases additional logging has been added to report a more meaningful error. I was unable to reproduce this error in an e2e test against v12.5.1, but if this is encountered in the future it can be logged as a new issue with the supplemental logs to help us track down the root cause

@JohnnyFun
Copy link
Author

Cool, at some point soon I'll confirm that removing my work around passes. Thanks!

@matys84pl
Copy link

@mike-plummer Hi, when can we expect this to be released? We have a lot of tests failing due to this issue.

@nagash77 nagash77 assigned marktnoonan and unassigned mike-plummer Feb 14, 2023
@lmiller1990
Copy link
Contributor

lmiller1990 commented Feb 14, 2023

This will be in the next release, 12.6, which is this week.

@cypress-bot
Copy link
Contributor

cypress-bot bot commented Feb 15, 2023

Released in 12.6.0.

This comment thread has been locked. If you are still experiencing this issue after upgrading to
Cypress v12.6.0, please open a new issue.

@cypress-bot cypress-bot bot locked as resolved and limited conversation to collaborators Feb 15, 2023
@marktnoonan
Copy link
Contributor

Hi @matys84pl, when you get a moment please confirm that this fixed your issue.

@nagash77 nagash77 assigned marktnoonan and unassigned marktnoonan Mar 1, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CT Issue related to component testing type: bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.