Skip to content

feat: DH-21476: Middleware plugin infrastructure for widget chaining #5271

feat: DH-21476: Middleware plugin infrastructure for widget chaining

feat: DH-21476: Middleware plugin infrastructure for widget chaining #5271

Triggered via pull request April 24, 2026 01:55
Status Failure
Total duration 17m 18s
Artifacts 10

e2e.yml

on: pull_request
Matrix: e2e-tests
merge-reports
42s
merge-reports
e2e-results
3s
e2e-results
Fit to window
Zoom out
Zoom in

Annotations

15 errors, 6 warnings, and 1 notice
e2e-tests (webkit-2-2)
Process completed with exit code 1.
e2e-tests (webkit-1-2)
Process completed with exit code 1.
e2e-tests (chromium-1-1)
Process completed with exit code 1.
e2e-tests (firefox-1-1)
Process completed with exit code 1.
e2e-results
Process completed with exit code 1.
[chromium] › ../../../../../work/tests/lazy-loading.spec.ts:28:5 › lazy loads plotly: ../../../../../work/tests/utils.ts#L132
5) [chromium] › ../../../../../work/tests/lazy-loading.spec.ts:28:5 › lazy loads plotly ────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveCount(expected) failed Locator: locator('.chart-panel-container .chart-wrapper') Expected: 1 Received: 0 Timeout: 15000ms Call log: - Expect "toHaveCount" with timeout 15000ms - waiting for locator('.chart-panel-container .chart-wrapper') 19 × locator resolved to 0 elements - unexpected value "0" at utils.ts:132 130 | await expect( 131 | page.locator('.chart-panel-container .chart-wrapper') > 132 | ).toHaveCount(panelCount + 1); | ^ 133 | } 134 | } 135 | at openPlot (/work/tests/utils.ts:132:7) at /work/tests/lazy-loading.spec.ts:37:3
[chromium] › ../../../../../work/tests/lazy-loading.spec.ts:28:5 › lazy loads plotly: ../../../../../work/tests/utils.ts#L132
5) [chromium] › ../../../../../work/tests/lazy-loading.spec.ts:28:5 › lazy loads plotly ────────── Error: expect(locator).toHaveCount(expected) failed Locator: locator('.chart-panel-container .chart-wrapper') Expected: 1 Received: 0 Timeout: 15000ms Call log: - Expect "toHaveCount" with timeout 15000ms - waiting for locator('.chart-panel-container .chart-wrapper') 19 × locator resolved to 0 elements - unexpected value "0" at utils.ts:132 130 | await expect( 131 | page.locator('.chart-panel-container .chart-wrapper') > 132 | ).toHaveCount(panelCount + 1); | ^ 133 | } 134 | } 135 | at openPlot (/work/tests/utils.ts:132:7) at /work/tests/lazy-loading.spec.ts:37:3
[chromium] › ../../../../../work/tests/golden-layout.spec.ts:180:5 › reopen last closed panel: ../../../../../work/tests/utils.ts#L132
4) [chromium] › ../../../../../work/tests/golden-layout.spec.ts:180:5 › reopen last closed panel › Open panels Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveCount(expected) failed Locator: locator('.chart-panel-container .chart-wrapper') Expected: 1 Received: 0 Timeout: 15000ms Call log: - Expect "toHaveCount" with timeout 15000ms - waiting for locator('.chart-panel-container .chart-wrapper') 19 × locator resolved to 0 elements - unexpected value "0" at utils.ts:132 130 | await expect( 131 | page.locator('.chart-panel-container .chart-wrapper') > 132 | ).toHaveCount(panelCount + 1); | ^ 133 | } 134 | } 135 | at openPlot (/work/tests/utils.ts:132:7) at /work/tests/golden-layout.spec.ts:210:5 at /work/tests/golden-layout.spec.ts:208:3
[chromium] › ../../../../../work/tests/golden-layout.spec.ts:180:5 › reopen last closed panel: ../../../../../work/tests/utils.ts#L132
4) [chromium] › ../../../../../work/tests/golden-layout.spec.ts:180:5 › reopen last closed panel › Open panels Error: expect(locator).toHaveCount(expected) failed Locator: locator('.chart-panel-container .chart-wrapper') Expected: 1 Received: 0 Timeout: 15000ms Call log: - Expect "toHaveCount" with timeout 15000ms - waiting for locator('.chart-panel-container .chart-wrapper') 19 × locator resolved to 0 elements - unexpected value "0" at utils.ts:132 130 | await expect( 131 | page.locator('.chart-panel-container .chart-wrapper') > 132 | ).toHaveCount(panelCount + 1); | ^ 133 | } 134 | } 135 | at openPlot (/work/tests/utils.ts:132:7) at /work/tests/golden-layout.spec.ts:210:5 at /work/tests/golden-layout.spec.ts:208:3
[chromium] › ../../../../../work/tests/figure.spec.ts:13:5 › can set point shape and size: ../../../../../work/tests/utils.ts#L132
3) [chromium] › ../../../../../work/tests/figure.spec.ts:13:5 › can set point shape and size ───── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveCount(expected) failed Locator: locator('.chart-panel-container .chart-wrapper') Expected: 1 Received: 0 Timeout: 15000ms Call log: - Expect "toHaveCount" with timeout 15000ms - waiting for locator('.chart-panel-container .chart-wrapper') 19 × locator resolved to 0 elements - unexpected value "0" at utils.ts:132 130 | await expect( 131 | page.locator('.chart-panel-container .chart-wrapper') > 132 | ).toHaveCount(panelCount + 1); | ^ 133 | } 134 | } 135 | at openPlot (/work/tests/utils.ts:132:7) at /work/tests/figure.spec.ts:15:3
[chromium] › ../../../../../work/tests/figure.spec.ts:13:5 › can set point shape and size: ../../../../../work/tests/utils.ts#L132
3) [chromium] › ../../../../../work/tests/figure.spec.ts:13:5 › can set point shape and size ───── Error: expect(locator).toHaveCount(expected) failed Locator: locator('.chart-panel-container .chart-wrapper') Expected: 1 Received: 0 Timeout: 15000ms Call log: - Expect "toHaveCount" with timeout 15000ms - waiting for locator('.chart-panel-container .chart-wrapper') 19 × locator resolved to 0 elements - unexpected value "0" at utils.ts:132 130 | await expect( 131 | page.locator('.chart-panel-container .chart-wrapper') > 132 | ).toHaveCount(panelCount + 1); | ^ 133 | } 134 | } 135 | at openPlot (/work/tests/utils.ts:132:7) at /work/tests/figure.spec.ts:15:3
[chromium] › ../../../../../work/tests/figure.spec.ts:4:5 › can open a simple figure: ../../../../../work/tests/utils.ts#L132
2) [chromium] › ../../../../../work/tests/figure.spec.ts:4:5 › can open a simple figure ────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveCount(expected) failed Locator: locator('.chart-panel-container .chart-wrapper') Expected: 1 Received: 0 Timeout: 15000ms Call log: - Expect "toHaveCount" with timeout 15000ms - waiting for locator('.chart-panel-container .chart-wrapper') 19 × locator resolved to 0 elements - unexpected value "0" at utils.ts:132 130 | await expect( 131 | page.locator('.chart-panel-container .chart-wrapper') > 132 | ).toHaveCount(panelCount + 1); | ^ 133 | } 134 | } 135 | at openPlot (/work/tests/utils.ts:132:7) at /work/tests/figure.spec.ts:6:3
[chromium] › ../../../../../work/tests/figure.spec.ts:4:5 › can open a simple figure: ../../../../../work/tests/utils.ts#L132
2) [chromium] › ../../../../../work/tests/figure.spec.ts:4:5 › can open a simple figure ────────── Error: expect(locator).toHaveCount(expected) failed Locator: locator('.chart-panel-container .chart-wrapper') Expected: 1 Received: 0 Timeout: 15000ms Call log: - Expect "toHaveCount" with timeout 15000ms - waiting for locator('.chart-panel-container .chart-wrapper') 19 × locator resolved to 0 elements - unexpected value "0" at utils.ts:132 130 | await expect( 131 | page.locator('.chart-panel-container .chart-wrapper') > 132 | ).toHaveCount(panelCount + 1); | ^ 133 | } 134 | } 135 | at openPlot (/work/tests/utils.ts:132:7) at /work/tests/figure.spec.ts:6:3
[chromium] › ../../../../../work/tests/context-menu.spec.ts:191:5 › filter by value: ../../../../../work/tests/context-menu.spec.ts#L197
1) [chromium] › ../../../../../work/tests/context-menu.spec.ts:191:5 › filter by value ─────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.hover: Timeout 15000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Filter by Value' }) 195 | await expectContextMenus(page, 1); 196 | > 197 | await page.getByRole('button', { name: 'Filter by Value' }).hover(); | ^ 198 | await expectContextMenus(page, 2); 199 | await page.getByRole('button', { name: 'text is exactly' }).click(); 200 | at /work/tests/context-menu.spec.ts:197:63
[chromium] › ../../../../../work/tests/context-menu.spec.ts:191:5 › filter by value: ../../../../../work/tests/context-menu.spec.ts#L197
1) [chromium] › ../../../../../work/tests/context-menu.spec.ts:191:5 › filter by value ─────────── TimeoutError: locator.hover: Timeout 15000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Filter by Value' }) 195 | await expectContextMenus(page, 1); 196 | > 197 | await page.getByRole('button', { name: 'Filter by Value' }).hover(); | ^ 198 | await expectContextMenus(page, 2); 199 | await page.getByRole('button', { name: 'text is exactly' }).click(); 200 | at /work/tests/context-menu.spec.ts:197:63
build
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e-tests (webkit-2-2)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e-tests (webkit-1-2)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e-tests (chromium-1-1)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e-tests (firefox-1-1)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
merge-reports
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/download-artifact@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🎭 Playwright Run Summary
18 failed [chromium] › ../../../../../work/tests/context-menu.spec.ts:191:5 › filter by value ──────────── [chromium] › ../../../../../work/tests/figure.spec.ts:4:5 › can open a simple figure ─────────── [chromium] › ../../../../../work/tests/figure.spec.ts:13:5 › can set point shape and size ────── [chromium] › ../../../../../work/tests/golden-layout.spec.ts:180:5 › reopen last closed panel ── [chromium] › ../../../../../work/tests/lazy-loading.spec.ts:28:5 › lazy loads plotly ─────────── [chromium] › ../../../../../work/tests/table-multiselect.spec.ts:100:7 › multiselect number filters [firefox] › ../../../../../work/tests/context-menu.spec.ts:191:5 › filter by value ───────────── [firefox] › ../../../../../work/tests/figure.spec.ts:4:5 › can open a simple figure ──────────── [firefox] › ../../../../../work/tests/figure.spec.ts:13:5 › can set point shape and size ─────── [firefox] › ../../../../../work/tests/golden-layout.spec.ts:180:5 › reopen last closed panel ─── [firefox] › ../../../../../work/tests/lazy-loading.spec.ts:28:5 › lazy loads plotly ──────────── [firefox] › ../../../../../work/tests/table-multiselect.spec.ts:100:7 › multiselect number filters [webkit] › ../../../../../work/tests/context-menu.spec.ts:191:5 › filter by value ────────────── [webkit] › ../../../../../work/tests/figure.spec.ts:4:5 › can open a simple figure ───────────── [webkit] › ../../../../../work/tests/figure.spec.ts:13:5 › can set point shape and size ──────── [webkit] › ../../../../../work/tests/golden-layout.spec.ts:180:5 › reopen last closed panel ──── [webkit] › ../../../../../work/tests/lazy-loading.spec.ts:28:5 › lazy loads plotly ───────────── [webkit] › ../../../../../work/tests/table-multiselect.spec.ts:100:7 › multiselect number filters 1 flaky [webkit] › ../../../../../work/tests/golden-layout.spec.ts:145:7 › tests golden-layout operations › golden-layout can drag tab to left edge 338 passed (7.6m)

Artifacts

Produced during runtime
Name Size Digest
image-cache Expired
1.54 GB
sha256:bc787382c266db43dcb2540d99866f00dad551906485c155dd452d4d33c65b01
playwright-report
136 MB
sha256:25853c1dacc3f540266adc80754d19e73a919e4839efa4431939b06a282f03f4
playwright-report-blob-chromium-1-1 Expired
40.9 MB
sha256:389c02a09b05b6d755e250f00b152a729306a9ace7633ab12140d7799b235e6a
playwright-report-blob-firefox-1-1 Expired
48.7 MB
sha256:282fa0eb350650d2938f6d859104acba7de6e02878431976143fd07ec9b92e53
playwright-report-blob-webkit-1-2 Expired
39.6 MB
sha256:af59f47bed0950ee9ce5c97f6b8e90e7fea02013476710ac5c048696ff9adad5
playwright-report-blob-webkit-2-2 Expired
6.36 MB
sha256:487f95cc60cc83371efdf531b46a6c297e335ae333c04d97ac69f98cf6784c52
server-logs-chromium-1-1
10.5 KB
sha256:44002f36a477e8e40bcae65ec33e8f8416571b631f74b433bb629257e035e067
server-logs-firefox-1-1
10.8 KB
sha256:867d146f6826e9473bbb0b4c7c407bdc6adc1581f01b9fe3afff94794ff7aeca
server-logs-webkit-1-2
8.58 KB
sha256:e66aeb0de44a0a83b4786ec6dfbfdecb1f17d27687e313139347750aab45d264
server-logs-webkit-2-2
7.35 KB
sha256:07b083f336a006100f82222954f4968ae4a5de93fa9b636f90a67417cf3da249