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

Detached DOM issues in Firefox headless not headed #24900

Closed
j-maddo opened this issue Nov 30, 2022 · 7 comments · Fixed by #25009
Closed

Detached DOM issues in Firefox headless not headed #24900

j-maddo opened this issue Nov 30, 2022 · 7 comments · Fixed by #25009
Assignees

Comments

@j-maddo
Copy link

j-maddo commented Nov 30, 2022

Current behavior

In Cypress versions 10-12, Firefox appears to execute differently between headed and headless versions. Using Firefox 107, all Cypress tests pass in open mode but fail with an assertion error: "AssertionError: Timed out retrying after 4000ms: Expected to find element: [data-testid=video-overflow-share], but never found it." in run mode.

Desired behavior

In this situation, where all environmental factors are the same, I would expect the headless version to mirror the headed version and pass all the tests that pass in headed mode.

Test code to reproduce

Here is a link to my repo where you can reproduce the error. The failing test is in the file: testing-dom__page-reloads/Client-Repro/cypress/e2e/1-getting-started/vidyard.cy.js.

Upon request, I can give the email and password that I used to sign in to vidyard.com.

Cypress Version

Cypress 12 from binary

Node version

v18.12.0

Operating System

macOS Ventura 13.0.1

Debug Logs

module.exports/Promise.prototype._settlePromiseFromHandler (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise0 (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9364:10)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromises (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9444:18)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._fulfill (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9388:18)\n' + 'at ../../node_modules/bluebird/js/release/timers.js/module.exports/Promise.delay/handle< (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11002:46)\n' + 'From Your Spec Code:\n' + '    at shouldFn (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:138795:18)\n' + '    at should (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:138923:23)\n' + '    at ../driver/src/cy/assertions.ts/create/injectAssertion (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:133994:39)\n' + '    at assertions (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:134266:16)\n' + '    at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + '    at gotValue (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10471:18)\n' + '    at gotAccum (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10458:25)\n' + '    at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseCtx (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9356:10)\n' + '    at _drainQueueStep (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6038:12)\n' + '    at _drainQueue (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6027:24)\n' + '    at ../../node_modules/bluebird/js/release/async.js/</Async.prototype._drainQueues (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6043:16)\n' + '    at ../../node_modules/bluebird/js/release/async.js/</Async/this.drainQueues (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:5913:14)', parsedStack: [Array], fileName: 'https://auth.vidyard.com/__cypress/runner/cypress_runner.js', lineNumber: 159842, columnNumber: 5 }, state: 'failed', body: 'function () {\n' + '    // Some conditional testing is needed to set things up consistently.\n' + "    // First we do a long wait to make sure the element will have time to appear if it's going to.\n" + '    // Then, we dismiss it if it appears.\n' + '    cy.wait(10000); // This is where the interesting part of the test is.\n' + '\n' + "    cy.get('[data-testid=video-overflow]').first().click();\n" + "    cy.get('[data-testid=video-overflow-share]').find('.vy-truncate') // In headless runs, Cypress complains this element is detached from the DOM when we try to click it.\n" + "    // Note to customer: had to change from 'Share' to get it to work\n" + "    .should('have.text', '\\n    Share\\n  ').click();\n" + '  }', type: 'test', duration: 20089, wallClockStartedAt: '2022-11-30T15:39:09.581Z', timings: { lifecycle: 33, 'before each': [Array], test: [Object] }, file: null, invocationDetails: { function: './cypress/e2e/1-getting-started/vidyard.cy.js', fileUrl: 'https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js', originalFile: 'webpack:///./cypress/e2e/1-getting-started/vidyard.cy.js', relativeFile: 'cypress/e2e/1-getting-started/vidyard.cy.js', absoluteFile: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/e2e/1-getting-started/vidyard.cy.js', line: 18, column: 7, whitespace: '', stack: './cypress/e2e/1-getting-started/vidyard.cy.js/<@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:112:5\n' + 'create@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:103470:19\n' + '../driver/node_modules/mocha/lib/interfaces/bdd.js/bddInterface/</context.context@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:103246:27\n' + 'createRunnable@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:161357:31\n' + '../driver/src/cypress/mocha.ts/overloadMochaFnForConfig/replacementFn/<@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:161425:14\n' + './cypress/e2e/1-getting-started/vidyard.cy.js@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:99:8\n' + '__webpack_require__@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:20:30\n' + '0@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:136:18\n' + '__webpack_require__@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:20:30\n' + '@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:84:18\n' + '@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:87:10\n' + '../driver/src/cypress/script_utils.ts/evalScripts/<@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:164427:23\n' + 'tryCatcher@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23\n' + 'gotValue@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10469:18\n' + 'gotAccum@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10458:25\n' + 'tryCatcher@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise0@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9364:10\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromises@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9444:18\n' + '_drainQueueStep@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6034:12\n' + '_drainQueue@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6027:24\n' + '../../node_modules/bluebird/js/release/async.js/</Async.prototype._drainQueues@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6043:16\n' + '../../node_modules/bluebird/js/release/async.js/</Async/this.drainQueues@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:5913:14\n' }, final: true, currentRetry: 0, retries: 0, _slow: 10000 } ] +7ms
  cypress:server:project onMocha suite end +11ms
  cypress:server:reporter got mocha event 'suite end' with args: [ { id: 'r2', title: 'Cypress', root: false, type: 'suite', file: null, invocationDetails: { function: './cypress/e2e/1-getting-started/vidyard.cy.js', fileUrl: 'https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js', originalFile: 'webpack:///./cypress/e2e/1-getting-started/vidyard.cy.js', relativeFile: 'cypress/e2e/1-getting-started/vidyard.cy.js', absoluteFile: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/e2e/1-getting-started/vidyard.cy.js', line: 1, column: 8, whitespace: '', stack: './cypress/e2e/1-getting-started/vidyard.cy.js@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:99:8\n' + '__webpack_require__@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/
1-getting-started/vidyard.cy.js:20:30\n' + '0@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:136:18\n' + '__webpack_require__@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:20:30\n' + '@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:84:18\n' + '@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:87:10\n' + '../driver/src/cypress/script_utils.ts/evalScripts/<@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:164427:23\n' + 'tryCatcher@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23\n' + 'gotValue@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10469:18\n' + 'gotAccum@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10458:25\n' + 'tryCatcher@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise0@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9364:10\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromises@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9444:18\n' + '_drainQueueStep@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6034:12\n' + '_drainQueue@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6027:24\n' + '../../node_modules/bluebird/js/release/async.js/</Async.prototype._drainQueues@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6043:16\n' + '../../node_modules/bluebird/js/release/async.js/</Async/this.drainQueues@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:5913:14\n' }, retries: -1, _slow: 10000 } ] +11ms
  cypress:server:project onMocha test:after:run +0ms
  cypress:server:reporter got mocha event 'test:after:run' with args: [ { _testConfig: { testConfigList: [Array], unverifiedTestConfig: [Object], applied: 'complete' }, id: 'r3', order: 1, title: 'Firefox Headed/Headless Issue', err: { message: 'Timed out retrying after 4050ms: `cy.click()` failed because the page updated while this command was executing. Cypress tried to locate elements based on this query:\n' + '\n' + '> <div.vy-truncate>\n' + '\n' + 'We initially found matching element(s), but while waiting for them to become actionable, they disappeared from the page. Common situations why this happens:\n' + '  - Your JS framework re-rendered asynchronously\n' + '  - Your app code reacted to an event firing and removed the element\n' + '\n' + 'You can typically solve this by breaking up a chain. For example, rewrite:\n' + '\n' + "> `cy.get('button').click().click()`\n" + '\n' + 'to\n' + '\n' + "> `cy.get('button').as('btn').click()`\n" + "> `cy.get('@btn').click()`\n" + '\n' + 'https://on.cypress.io/element-has-detached-from-dom', name: 'CypressError', stack: 'CypressError: Timed out retrying after 4050ms: `cy.click()` failed because the page updated while this command was executing. Cypress tried to locate elements based on this query:\n' + '\n' + '> <div.vy-truncate>\n' + '\n' + 'We initially found matching element(s), but while waiting for them to become actionable, they disappeared from the page. Common situations why this happens:\n' + '  - Your JS framework re-rendered asynchronously\n' + '  - Your app code reacted to an event firing and removed the element\n' + '\n' + 'You can typically solve this by breaking up a chain. For example, rewrite:\n' + '\n' + "> `cy.get('button').click().click()`\n" + '\n' + 'to\n' + '\n' + "> `cy.get('button').as('btn').click()`\n" + "> `cy.get('@btn').click()`\n" + '\n' + 'https://on.cypress.io/element-has-detached-from-dom\n' + 'at retryActionability (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:133687:82)\n' + 'at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + 'at ../../node_modules/bluebird/js/release/method.js/module.exports/Promise.try (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:8601:29)\n' + 'at whenStable (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:151358:62)\n' + 'at ../driver/src/cy/retries.ts/create/retry (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:150766:14)\n' + 'at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise0 (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9364:10)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromises (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9444:18)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._fulfill (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9388:18)\n' + 'at ../../node_modules/bluebird/js/release/timers.js/module.exports/Promise.delay/handle< (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11002:46)\n' + 'From Your Spec Code:\n' + '    at shouldFn (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:138795:18)\n' + '    at should (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:138923:23)\n' + '    at ../driver/src/cy/assertions.ts/create/injectAssertion (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:133994:39)\n' + '    at assertions (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:134266:16)\n' + '    at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + '    at gotValue (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10471:18)\n' + '    at gotAccum (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10458:25)\n' + '    at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseCtx (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9356:10)\n' + '    at _drainQueueStep (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6038:12)\n' + '    at _drainQueue (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6027:24)\n' + '    at ../../node_modules/bluebird/js/release/async.js/</Async.prototype._drainQueues (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6043:16)\n' + '    at ../../node_modules/bluebird/js/release/async.js/</Async/this.drainQueues (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:5913:14)', parsedStack: [Array], fileName: 'https://auth.vidyard.com/__cypress/runner/cypress_runner.js', lineNumber: 159842, columnNumber: 5 }, state: 'failed', body: 'function () {\n' + '    // Some conditional testing is needed to set things up consistently.\n' + "    // First we do a long wait to make sure the element will have time to appear if it's going to.\n" + '    // Then, we dismiss it if it appears.\n' + '    cy.wait(10000); // This is where the interesting part of the test is.\n' + '\n' + "    cy.get('[data-testid=video-overflow]').first().click();\n" + "    cy.get('[data-testid=video-overflow-share]').find('.vy-truncate') // In headless runs, Cypress complains this element is detached from the DOM when we try to click it.\n" + "    // Note to customer: had to change from 'Share' to get it to work\n" + "    .should('have.text', '\\n    Share\\n  ').click();\n" + '  }', type: 'test', duration: 20089, wallClockStartedAt: '2022-11-30T15:39:09.581Z', wallClockDuration: 20097, timings: { lifecycle: 33, 'before each': [Array], test: [Object] }, file: null, invocationDetails: { function: './cypress/e2e/1-getting-started/vidyard.cy.js', fileUrl: 'https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js', originalFile: 'webpack:///./cypress/e2e/1-getting-started/vidyard.cy.js', relativeFile: 'cypress/e2e/1-getting-started/vidyard.cy.js', absoluteFile: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/e2e/1-getting-started/vidyard.cy.js', line: 18, column: 7, whitespace: '', stack: './cypress/e2e/1-getting-started/vidy
  0 passing (22s)
  1 failing

  1) Cypress
       Firefox Headed/Headless Issue:
     CypressError: Timed out retrying after 4050ms: `cy.click()` failed because the page updated while this command was executing. Cypress tried to locate elements based on this query:

> <div.vy-truncate>

We initially found matching element(s), but while waiting for them to become actionable, they disappeared from the page. Common situations why this happens:
  - Your JS framework re-rendered asynchronously
  - Your app code reacted to an event firing and removed the element

You can typically solve this by breaking up a chain. For example, rewrite:

> `cy.get('button').click().click()`

to

> `cy.get('button').as('btn').click()`
> `cy.get('@btn').click()`

https://on.cypress.io/element-has-detached-from-dom
  at retryActionability (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:133687:82)
  at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)
  at ../../node_modules/bluebird/js/release/method.js/module.exports/Promise.try (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:8601:29)
  at whenStable (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:151358:62)
  at ../driver/src/cy/retries.ts/create/retry (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:150766:14)
  at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)
  at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31)
  at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18)
  at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise0 (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9364:10)
  at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromises (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9444:18)
  at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._fulfill (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9388:18)
  at ../../node_modules/bluebird/js/release/timers.js/module.exports/Promise.delay/handle< (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11002:46)
  From Your Spec Code:
      at shouldFn (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:138795:18)
      at should (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:138923:23)
      at ../driver/src/cy/assertions.ts/create/injectAssertion (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:133994:39)
      at assertions (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:134266:16)
      at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)
      at gotValue (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10471:18)
      at gotAccum (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10458:25)
      at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)
      at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31)
      at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18)
      at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseCtx (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9356:10)
      at _drainQueueStep (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6038:12)
      at _drainQueue (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6027:24)
      at ../../node_modules/bluebird/js/release/async.js/</Async.prototype._drainQueues (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6043:16)
      at ../../node_modules/bluebird/js/release/async.js/</Async/this.drainQueues (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:5913:14)



ard.cy.js/<@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:112:5\n' + 'create@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:103470:19\n' + '../driver/node_modules/mocha/lib/interfaces/bdd.js/bddInterface/</context.context@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:103246:27\n' + 'createRunnable@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:161357:31\n' + '../driver/src/cypress/mocha.ts/overloadMochaFnForConfig/replacementFn/<@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:161425:14\n' + './cypress/e2e/1-getting-started/vidyard.cy.js@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:99:8\n' + '__webpack_require__@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:20:30\n' + '0@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:136:18\n' + '__webpack_require__@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:20:30\n' + '@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:84:18\n' + '@https://auth.vidyard.com/__cypress/tests?p=cypress/e2e/1-getting-started/vidyard.cy.js:87:10\n' + '../driver/src/cypress/script_utils.ts/evalScripts/<@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:164427:23\n' + 'tryCatcher@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23\n' + 'gotValue@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10469:18\n' + 'gotAccum@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10458:25\n' + 'tryCatcher@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise0@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9364:10\n' + '../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromises@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9444:18\n' + '_drainQueueStep@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6034:12\n' + '_drainQueue@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6027:24\n' + '../../node_modules/bluebird/js/release/async.js/</Async.prototype._drainQueues@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6043:16\n' + '../../node_modules/bluebird/js/release/async.js/</Async/this.drainQueues@https://auth.vidyard.com/__cypress/runner/cypress_runner.js:5913:14\n' }, final: true, currentRetry: 0, retries: 0, _slow: 10000 } ] +0ms
  cypress:server:project onMocha suite end +1ms
  cypress:server:reporter got mocha event 'suite end' with args: [ { id: 'r1', title: '', root: true, type: 'suite', file: 'cypress/e2e/1-getting-started/vidyard.cy.js', retries: -1, _slow: 10000 } ] +1ms
  cypress:server:project onMocha end +0ms
  cypress:server:reporter got mocha event 'end' with args: [ { end: '2022-11-30T15:39:29.683Z' } ] +0ms
  
  cypress:server:request received status code & headers on request { requestId: 'request225', statusCode: 200, headers: { 'content-type': 'application/octet-stream' } } +563ms
  cypress:server:request successful response received { requestId: 'request225' } +0ms
  cypress:net-stubbing:server:intercept-response InterceptResponse { req: { url: '/main-workspace/quicksuggest/80be386c-37c5-4842-8c46-c4936b79efec.json' }, request: undefined } +564ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +40ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +40ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:server:remote-states getting primary remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +1ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +1ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure', domain: 'vidyard', tld: 'com' } +15ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure', domain: 'vidyard', tld: 'com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +501ms
  cypress:server:remote-states getting remote state: undefined for: https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/97cfed58-776d-47d4-bd57-765687e0cc22.json +517ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +1ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +0ms
  cypress:server:stream_buffer stream buffer writeable final called +557ms
  cypress:network:agent addRequest called { isHttps: true, href: 'https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/97cfed58-776d-47d4-bd57-765687e0cc22.json' } +557ms
  cypress:network:agent got family { family: 4, href: 'https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/97cfed58-776d-47d4-bd57-765687e0cc22.json' } +0ms
  cypress:server:request received status code & headers on request { requestId: 'request226', statusCode: 200, headers: { 'content-type': 'application/octet-stream' } } +544ms
  cypress:server:request successful response received { requestId: 'request226' } +0ms
  cypress:net-stubbing:server:intercept-response InterceptResponse { req: { url: '/main-workspace/quicksuggest/97cfed58-776d-47d4-bd57-765687e0cc22.json' }, request: undefined } +544ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +26ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +26ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:server:remote-states getting primary remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +1ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +1ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure', domain: 'vidyard', tld: 'com' } +21ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure', domain: 'vidyard', tld: 'com' } +1ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +502ms
  cypress:server:remote-states getting remote state: undefined for: https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/edfcedc4-c5b5-4245-8323-ec6fba386d42.json +524ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +0ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +1ms
  cypress:server:stream_buffer stream buffer writeable final called +552ms
  cypress:network:agent addRequest called { isHttps: true, href: 'https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/edfcedc4-c5b5-4245-8323-ec6fba386d42.json' } +552ms
  cypress:network:agent got family { family: 4, href: 'https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/edfcedc4-c5b5-4245-8323-ec6fba386d42.json' } +0ms
  cypress:server:request received status code & headers on request { requestId: 'request227', statusCode: 200, headers: { 'content-type': 'application/octet-stream' } } +587ms
  cypress:server:request successful response received { requestId: 'request227' } +1ms
  cypress:net-stubbing:server:intercept-response InterceptResponse { req: { url: '/main-workspace/quicksuggest/edfcedc4-c5b5-4245-8323-ec6fba386d42.json' }, request: undefined } +588ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +63ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +62ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +1ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:server:remote-states getting primary remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } +1ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +0ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure', domain: 'vidyard', tld: 'com' } +19ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure', domain: 'vidyard', tld: 'com' } +1ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +501ms
  cypress:server:remote-states getting remote state: undefined for: https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/94581726-5666-4a80-bb6b-419fbcb5c3e5.json +521ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +0ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +0ms
  cypress:server:stream_buffer stream buffer writeable final called +585ms
  cypress:network:agent addRequest called { isHttps: true, href: 'https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/94581726-5666-4a80-bb6b-419fbcb5c3e5.json' } +584ms
  cypress:network:agent got family { family: 4, href: 'https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/quicksuggest/94581726-5666-4a80-bb6b-419fbcb5c3e5.json' } +0ms
  cypress:server:request received status code & headers on request { requestId: 'request228', statusCode: 200, headers: { 'content-type': 'application/octet-stream' } } +548ms
  cypress:server:request successful response received { requestId: 'request228' } +0ms
  cypress:net-stubbing:server:intercept-response InterceptResponse { req: { url: '/main-workspace/quicksuggest/94581726-5666-4a80-bb6b-419fbcb5c3e5.json' }, request: undefined } +548ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +26ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +26ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +1ms
  cypress:server:remote-states getting primary remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } +1ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'firefox-settings-attachments.cdn', domain: 'mozilla', tld: 'net' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'vidyard', tld: 'com' } +0ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'https://auth.vidyard.com', strategy: 'http', fileServer: null, domainName: 'vidyard.com', props: { port: '443', protocol: 'https:', subdomain: 'auth', domain: 'vidyard', tld: 'com' } } for: https://vidyard.com +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure', domain: 'vidyard', tld: 'com' } +16ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure', domain: 'vidyard', tld: 'com' } +0ms
Warning: We failed processing this video.

  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        1                                                                                │
  │ Passing:      0                                                                                │
  │ Failing:      1                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  1                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     21 seconds                                                                       │
  │ Spec Ran:     vidyard.cy.js                                                                    │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


  (Screenshots)

  -  /Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Clie     (1280x720)
     nt-Repro/cypress/screenshots/vidyard.cy.js/Cypress -- Firefox HeadedHeadless Iss               
     ue (failed).png                                                                                

  cypress:server:run attempting to close the browser tab +12ms
  cypress:server:socket-base backend:request { eventName: 'firefox:window:focus', args: [] } +4s
  cypress:launcher:browsers firefox stdout: 1669822773743       Marionette      DEBUG   1 -> [0,9,"WebDriver:ExecuteScript",{"args":[],"script":"return (() => {\n        top.focus()\n      }).apply(null, arguments)      "}] +8s
  cypress:https-proxy received error on client browserSocket { err: Error: This socket has been ended by the other party     at Socket.writeAfterFIN [as write] (node:net:487:14)     at Socket.ondata (node:internal/streams/readable:754:22)     at Socket.emit (node:events:527:28)     at addChunk (node:internal/streams/readable:315:12)     at readableAddChunk (node:internal/streams/readable:289:9)     at Readable.push (node:internal/streams/readable:228:10)     at TCP.onStreamRead (node:internal/stream_base_commons:190:23) { code: 'EPIPE' }, url: 'auth.vidyard.com:443' } +7s
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 63687 } +2s
  cypress:server:socket-base socket-disconnecting transport close +5ms
  cypress:server:socket-base socket-disconnect transport close +0ms
  cypress:launcher:browsers firefox stderr: JavaScript error: resource://gre/modules/ExtensionChild.jsm, line 839: DataCloneError: Function object could not be cloned. +8ms
  cypress:launcher:browsers firefox stdout: 1669822773752       RemoteAgent     DEBUG   CDPConnection 67732138-7dd5-4af2-9ae5-119d1d96f71c closed +2ms
  cypress:launcher:browsers firefox stdout: 1669822773763       Marionette      DEBUG   1 <- [1,9,null,{"value":null}] +10ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 63699 } +19ms
  cypress:server:run resetting server state +44ms
  cypress:proxy:http:util:buffers resetting buffers +24s
  cypress:network:cors Parsed URL { port: '80', protocol: null, subdomain: null, domain: '', tld: '' } +155ms
  cypress:network:cors Parsed URL { port: '63577', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +0ms
  cypress:server:remote-states setting remote state { auth: undefined, origin: 'http://localhost:63577', strategy: 'file', fileServer: 'http://localhost:63578', domainName: 'localhost', props: null } for http://localhost:63577 +171ms
  cypress:network:cors Parsed URL { port: '63577', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +0ms
  cypress:server:remote-states getting remote state: { auth: undefined, origin: 'http://localhost:63577', strategy: 'file', fileServer: 'http://localhost:63578', domainName: 'localhost', props: null } for: http://localhost:63577 +0ms
  cypress:server:run spec results { stats: { suites: 1, tests: 1, passes: 0, pending: 0, skipped: 0, failures: 1, wallClockStartedAt: 2022-11-30T15:39:08.024Z, wallClockEndedAt: 2022-11-30T15:39:29.683Z, wallClockDuration: 21659 }, reporter: 'spec', reporterStats: { suites: 1, tests: 1, passes: 0, pending: 0, failures: 1, start: 2022-11-30T15:39:08.026Z, end: 2022-11-30T15:39:29.690Z, duration: 21664 }, hooks: [ { hookId: 'h1', hookName: 'before each', title: [Array], body: 'function () {\n' + '    // These are not real credentials.\n' + '    // Please sign up (for free) at www.vidyard.com, verify your email address, then update these accordingly.\n' + '    // This test also requires at least one video in your Library, so please upload at least one video.\n' + "    const email = 'jireh@cypress.io';\n" + "    const password = 'Faithful08!';\n" + "    cy.visit('https://secure.vidyard.com/user/sign_in');\n" + "    cy.get('#username').type(email);\n" + "    cy.get('#next-login').click();\n" + "    cy.get('#password').type(password);\n" + "    cy.get('#sign-in').click();\n" + '  }' } ], tests: [ { testId: 'r3', title: [Array], state: 'failed', body: 'function () {\n' + '    // Some conditional testing is needed to set things up consistently.\n' + "    // First we do a long wait to make sure the element will have time to appear if it's going to.\n" + '    // Then, we dismiss it if it appears.\n' + '    cy.wait(10000); // This is where the interesting part of the test is.\n' + '\n' + "    cy.get('[data-testid=video-overflow]').first().click();\n" + "    cy.get('[data-testid=video-overflow-share]').find('.vy-truncate') // In headless runs, Cypress complains this element is detached from the DOM when we try to click it.\n" + "    // Note to customer: had to change from 'Share' to get it to work\n" + "    .should('have.text', '\\n    Share\\n  ').click();\n" + '  }', displayError: 'CypressError: Timed out retrying after 4050ms: `cy.click()` failed because the page updated while this command was executing. Cypress tried to locate elements based on this query:\n' + '\n' + '> <div.vy-truncate>\n' + '\n' + 'We initially found matching element(s), but while waiting for them to become actionable, they disappeared from the page. Common situations why this happens:\n' + '  - Your JS framework re-rendered asynchronously\n' + '  - Your app code reacted to an event firing and removed the element\n' + '\n' + 'You can typically solve this by breaking up a chain. For example, rewrite:\n' + '\n' + "> `cy.get('button').click().click()`\n" + '\n' + 'to\n' + '\n' + "> `cy.get('button').as('btn').click()`\n" + "> `cy.get('@btn').click()`\n" + '\n' + 'https://on.cypress.io/element-has-detached-from-dom\n' + 'at retryActionability (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:133687:82)\n' + 'at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + 'at ../../node_modules/bluebird/js/release/method.js/module.exports/Promise.try (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:8601:29)\n' + 'at whenStable (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:151358:62)\n' + 'at ../driver/src/cy/retries.ts/create/retry (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:150766:14)\n' + 'at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise0 (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9364:10)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromises (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9444:18)\n' + 'at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._fulfill (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9388:18)\n' + 'at ../../node_modules/bluebird/js/release/timers.js/module.exports/Promise.delay/handle< (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11002:46)\n' + 'From Your Spec Code:\n' + '    at shouldFn (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:138795:18)\n' + '    at should (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:138923:23)\n' + '    at ../driver/src/cy/assertions.ts/create/injectAssertion (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:133994:39)\n' + '    at assertions (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:134266:16)\n' + '    at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + '    at gotValue (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10471:18)\n' + '    at gotAccum (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:10458:25)\n' + '    at tryCatcher (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:11327:23)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseFromHandler (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9262:31)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromise (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9319:18)\n' + '    at ../../node_modules/bluebird/js/release/promise.js/</module.exports/Promise.prototype._settlePromiseCtx (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:9356:10)\n' + '    at _drainQueueStep (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6038:12)\n' + '    at _drainQueue (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6027:24)\n' + '    at ../../node_modules/bluebird/js/release/async.js/</Async.prototype._drainQueues (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:6043:16)\n' + '    at ../../node_modules/bluebird/j
=============================================================================================

  (Run Finished)
s/release/async.js/</Async/this.drainQueues (https://auth.vidyard.com/__cypress/runner/cypress_runner.js:5913:14)', attempts: [Array] } ], error: null, video: null, screenshots: [ { screenshotId: 'lv7d5', name: null, testId: 'r3', testAttemptIndex: 0, takenAt: '2022-11-30T15:39:29.588Z', path: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/screenshots/vidyard.cy.js/Cypress -- Firefox HeadedHeadless Issue (failed).png', height: 720, width: 1280, pathname: undefined } ], spec: { fileExtension: '.js', baseName: 'vidyard.cy.js', fileName: 'vidyard', specFileExtension: '.cy.js', relativeToCommonRoot: 'vidyard.cy.js', specType: 'integration', name: 'cypress/e2e/1-getting-started/vidyard.cy.js', relative: 'cypress/e2e/1-getting-started/vidyard.cy.js', absolute: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/e2e/1-getting-started/vidyard.cy.js' }, shouldUploadVideo: true } +0ms
  cypress:server:run final results of all runs: { status: 'finished', startedTestsAt: 2022-11-30T15:39:08.024Z, endedTestsAt: 2022-11-30T15:39:29.683Z, totalDuration: 21659, totalSuites: 1, totalTests: 1, totalPassed: 0, totalPending: 0, totalFailed: 1, totalSkipped: 0, runs: [ { stats: [Object], reporter: 'spec', reporterStats: [Object], hooks: [Array], tests: [Array], error: null, video: null, screenshots: [Array], spec: [Object], shouldUploadVideo: true } ], browserPath: '/Applications/Firefox.app/Contents/MacOS/firefox', browserName: 'firefox', browserVersion: '107.0', osName: 'darwin', osVersion: '22.1.0', cypressVersion: '12.0.0', runUrl: undefined, config: { video: true, setupNodeEvents: '[Function setupNodeEvents]', projectRoot: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro', projectName: 'Client-Repro', repoRoot: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro', rawJson: { e2e: [Object], video: true, setupNodeEvents: '[Function setupNodeEvents]', envFile: {}, projectRoot: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro', projectName: 'Client-Repro', repoRoot: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro' }, configFile: 'cypress.config.js', morgan: false, isTextTerminal: true, socketId: 'reihyj18pv', report: true, animationDistanceThreshold: 5, arch: 'arm64', baseUrl: null, blockHosts: null, chromeWebSecurity: true, clientCertificates: [], defaultCommandTimeout: 4000, downloadsFolder: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/downloads', env: {}, execTimeout: 60000, experimentalFetchPolyfill: false, experimentalInteractiveRunEvents: false, experimentalRunAllSpecs: false, experimentalModifyObstructiveThirdPartyCode: false, experimentalSourceRewriting: false, experimentalSingleTabRunMode: false, experimentalStudio: false, experimentalWebKitSupport: false, fileServerFolder: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro', fixturesFolder: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/fixtures', excludeSpecPattern: '*.hot-update.js', includeShadowDom: false, keystrokeDelay: 0, modifyObstructiveCode: true, nodeVersion: undefined, numTestsKeptInMemory: 0, platform: 'darwin', pageLoadTimeout: 60000, port: 63577, projectId: null, redirectionLimit: 20, reporter: 'spec', reporterOptions: null, requestTimeout: 5000, resolvedNodePath: '/usr/local/bin/node', resolvedNodeVersion: '18.12.0', responseTimeout: 30000, retries: { runMode: 0, openMode: 0 }, screenshotOnRunFailure: true, screenshotsFolder: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/screenshots', slowTestThreshold: 10000, scrollBehavior: 'top', supportFile: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/support/e

2e.js', supportFolder: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/support', taskTimeout: 60000, testIsolation: 'on', trashAssetsBeforeRuns: true, userAgent: null, videoCompression: 32, videosFolder: '/Users/jireh/Desktop/client-reproductions/vidyard/testing-dom__page-reloads/Client-Repro/cypress/videos', videoUploadOnPasses: true, viewportHeight: 660, viewportWidth: 1000, waitForAnimations: true, watchForFileChanges: false, specPattern: 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}', additionalIgnorePattern: [], autoOpen: false, browsers: [ [Object], [Object], [Object] ], clientRoute: '/__/', cypressBinaryRoot: '/Users/jireh/Library/Caches/Cypress/beta-12.0.0-release/12.0.0-8ff38cdb/Cypress.app/Contents/Resources/app', devServerPublicPathRoute: '/__cypress/src'       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✖  vidyard.cy.js                            00:21        1        -        1        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✖  1 of 1 failed (100%)                     00:21        1        -        1        -

Other

No response

@BlueWinds
Copy link
Contributor

I signed up for a free account on Vidyard, but wasn't able to get the test running - there's no element [data-testid=video-overflow] on the page, even after I recorded a sample video.

If you want to email me the demo username and password at blue@cypress.io, I'll keep taking a look - you're right that the test looks correct at a glance, and the error certainly doesn't fit with the situation, so I'm curious to dig in and figure out what's going wrong.

@BlueWinds
Copy link
Contributor

BlueWinds commented Nov 30, 2022

Or if you'd prefer not to share the login info, a simple set of steps to get the [data-testid=video-overflow] / [data-testid=video-overflow-share] elements showing up on the free account I signed up with (I'm not sure what on the page they're supposed to correspond to) would also work (as long as I don't need to link a social media account to it, I don't have any handy for testing).

Thanks for the report though, definitely want to poke into it and see what's happening.

@j-maddo
Copy link
Author

j-maddo commented Dec 1, 2022

Hi Blue, Thanks for reaching out! I sent you an email with the credentials.

@cypress-bot cypress-bot bot added the stage: needs review The PR code is done & tested, needs review label Dec 1, 2022
@BlueWinds
Copy link
Contributor

Super interesting, figured out what's going on and opened a PR for it. Should have it fixed before Cy12 ships. Thanks for the great bug report with repro. 👍

This started happening in the 12.0.0 binary because Cypress is now a lot more reliable and strict about visibility checks; the overflow element was always being hidden in headless firefox, but Cy11 didn't notice that fact to block the click.

We've discovered a lot of edge cases like this, where the new, stricter checks are uncovering weird things Cypress was doing under the hood.

@j-maddo
Copy link
Author

j-maddo commented Dec 1, 2022

Blue, you are amazing! Thanks for looking into this! Looking forward to the fix :)

@BlueWinds
Copy link
Contributor

We didn't end up getting this into 12.0.0. I'm still following up, and will see about the next patch release.

@cypress-bot
Copy link
Contributor

cypress-bot bot commented Dec 13, 2022

Released in 12.1.0.

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

@cypress-bot cypress-bot bot locked as resolved and limited conversation to collaborators Dec 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants