It turns out that one of our new Revise Tone browser tests is flaky in CI.
Example: https://integration.wikimedia.org/ci/job/quibble-with-gated-extensions-selenium-php81/5206/
From looking at the log and the video (see below), it appears that the Edit Check just disappears after selecting one of the options on the decline-survey on mobile, before clicking "Submit".
00:13:58.384 cy:command ✔ contains a, Decline 00:13:58.384 cy:command ✔ click 00:13:58.384 cy:command ✔ get .ve-ui-editCheckActionWidget 00:13:58.384 cy:command ✔ find label 00:13:58.384 cy:command ✔ first 00:13:58.384 cy:command ✔ click 00:13:58.384 cy:command ✔ wait 250 00:13:58.384 cy:command ✔ get .ve-ui-editCheckActionWidget 00:13:58.384 cy:command ✔ contains button, Submit 00:13:58.384 cy:command ✘ assert expected **subject** not to be **disabled** 00:13:58.384 Actual: "subject" 00:13:58.384 Expected: "disabled" 00:13:58.384 00:13:58.384 00:14:15.158 ✓ Shows the Revise Tone Edit Check and tags edits (16420ms) 00:14:15.159 00:14:15.189 00:14:15.189 3 passing (1m) 00:14:15.189 1 failing 00:14:15.189 00:14:15.189 1) Revise Tone 00:14:15.189 On mobile 00:14:15.189 Closes the Editor when declining Edits and suggests a new task: 00:14:15.189 CypressError: Timed out retrying after 20000ms: `cy.contains()` failed because it requires a DOM element, window or document. 00:14:15.189 00:14:15.189 No elements in the current DOM matched your query: 00:14:15.189 00:14:15.189 > cy.get(.ve-ui-editCheckActionWidget) 00:14:15.189 at isElement (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:148556:62) 00:14:15.189 at validateType (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:148414:14) 00:14:15.189 at Object.isType (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:148445:7) 00:14:15.189 at <unknown> (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:135693:22) 00:14:15.190 at Object.subjectFn (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:147466:16) 00:14:15.190 at $Cy.verifyUpcomingAssertions (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:146788:31) 00:14:15.190 at onRetry (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:147457:15) 00:14:15.190 at tryCatcher (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:1777:23) 00:14:15.190 at Promise.attempt.Promise.try (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:4285:29) 00:14:15.190 at whenStable (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:147344:68) 00:14:15.190 at <unknown> (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:147285:14) 00:14:15.190 at tryCatcher (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:1777:23) 00:14:15.190 at Promise._settlePromiseFromHandler (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:1489:31) 00:14:15.190 at Promise._settlePromise (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:1546:18) 00:14:15.190 at Promise._settlePromise0 (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:1591:10) 00:14:15.190 at Promise._settlePromises (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:1671:18) 00:14:15.190 at Promise._fulfill (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:1615:18) 00:14:15.190 at <unknown> (http://127.0.0.1:9413/__cypress/runner/cypress_runner.js:5420:46) 00:14:15.190 From Your Spec Code: 00:14:15.190 at Context.eval (webpack://GrowthExperiments/./cypress/e2e/ReviseTone.cy.ts:93:75) 00:14:15.190
And the video: https://integration.wikimedia.org/ci/job/quibble-with-gated-extensions-selenium-php81/5206/artifact/log/GrowthExperiments/ReviseTone.cy.ts.mp4 (at around 0:34)