Skip to content

Make the test suite parallel-safe and speed up CI #3634

Make the test suite parallel-safe and speed up CI

Make the test suite parallel-safe and speed up CI #3634

Triggered via pull request July 2, 2026 19:07
Status Failure
Total duration 22m 10s
Artifacts 6

ci.yml

on: pull_request
Matrix: e2e
Fit to window
Zoom out
Zoom in

Annotations

29 errors and 15 warnings
E2E (cloud 6of8)
Process completed with exit code 1.
[cloud] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method: e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/auth-methods-ui.test.ts:59:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/auth-methods-ui.test.ts:58:9 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method: e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/auth-methods-ui.test.ts:59:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/auth-methods-ui.test.ts:58:9 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method: e2e/scenarios/auth-methods-ui.test.ts#L42
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByText('How does this server authenticate?') to be visible ❯ scenarios/auth-methods-ui.test.ts:42:70 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/auth-methods-ui.test.ts:36:9 ❯ src/surfaces/browser.ts:166:13
E2E (cloud 7of8)
Process completed with exit code 1.
[cloud] scenarios/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI: e2e/scenarios/provider-plugins-ui.test.ts#L19
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('dialog', { name: 'Connect an integration' }) to be visible ❯ scenarios/provider-plugins-ui.test.ts:19:76 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/provider-plugins-ui.test.ts:16:7 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI: e2e/scenarios/provider-plugins-ui.test.ts#L58
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('heading', { name: 'Add Microsoft Graph' }) to be visible ❯ scenarios/provider-plugins-ui.test.ts:58:74 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/provider-plugins-ui.test.ts:54:7 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI: e2e/scenarios/provider-plugins-ui.test.ts#L48
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('heading', { name: 'Add Google' }) to be visible ❯ scenarios/provider-plugins-ui.test.ts:48:65 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/provider-plugins-ui.test.ts:44:7 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules: e2e/scenarios/policies-ui.test.ts#L170
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alphabc2c7ea8' }).locator('button[aria-expanded="false"]').filter({ hasText: 'poluibc2c7ea8' }) ❯ scenarios/policies-ui.test.ts:170:49 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/policies-ui.test.ts:169:9 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules: e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alphacb9d4541' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluicb9d4541.*.*.records.create)', { exact: true }) to be visible ❯ scenarios/policies-ui.test.ts:180:84 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/policies-ui.test.ts:175:9 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules: e2e/scenarios/policies-ui.test.ts#L184
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha7c32abbb' }).getByRole('button', { name: 'Set policy for polui7c32abbb.records.*', exact: true }) - waiting for" http://localhost:42600/org-user-9a00e450/integrations/polui7c32abbb" navigation to finish... - navigated to "http://localhost:42600/org-user-9a00e450/integrations/polui7c32abbb" ❯ scenarios/policies-ui.test.ts:184:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/policies-ui.test.ts:183:9 ❯ src/surfaces/browser.ts:166:13
E2E (cloud 4of8)
Process completed with exit code 1.
[cloud] cloud/auth-routing-flow.test.ts > Auth routing · signed out → login → onboarding → dashboard, one browser session: e2e/cloud/auth-routing-flow.test.ts#L61
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByText('Connect your MCP client') to be visible ❯ cloud/auth-routing-flow.test.ts:61:57 ❯ step src/surfaces/browser.ts:154:15 ❯ cloud/auth-routing-flow.test.ts:58:7 ❯ src/surfaces/browser.ts:166:13
[cloud] cloud/auth-routing-flow.test.ts > Auth routing · signed out → login → onboarding → dashboard, one browser session: e2e/cloud/auth-routing-flow.test.ts#L61
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByText('Connect your MCP client') to be visible ❯ cloud/auth-routing-flow.test.ts:61:57 ❯ step src/surfaces/browser.ts:154:15 ❯ cloud/auth-routing-flow.test.ts:58:7 ❯ src/surfaces/browser.ts:166:13
[cloud] cloud/auth-routing-flow.test.ts > Auth routing · signed out → login → onboarding → dashboard, one browser session: e2e/cloud/auth-routing-flow.test.ts#L61
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByText('Connect your MCP client') to be visible ❯ cloud/auth-routing-flow.test.ts:61:57 ❯ step src/surfaces/browser.ts:154:15 ❯ cloud/auth-routing-flow.test.ts:58:7 ❯ src/surfaces/browser.ts:166:13
E2E (cloud 8of8)
Process completed with exit code 1.
[cloud] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification: e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification: e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9 ❯ src/surfaces/browser.ts:166:13
[cloud] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification: e2e/scenarios/mcp-catalog-sync-ui.test.ts#L43
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByText('How does this server authenticate?') to be visible ❯ scenarios/mcp-catalog-sync-ui.test.ts:43:70 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/mcp-catalog-sync-ui.test.ts:37:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI: e2e/scenarios/provider-plugins-ui.test.ts#L58
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('heading', { name: 'Add Microsoft Graph' }) to be visible ❯ scenarios/provider-plugins-ui.test.ts:58:74 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/provider-plugins-ui.test.ts:54:7 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules: e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alphae460a645' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluie460a645.*.*.records.create)', { exact: true }) to be visible ❯ scenarios/policies-ui.test.ts:180:84 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/policies-ui.test.ts:175:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules: e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha7bc1b1d3' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui7bc1b1d3.*.*.records.create)', { exact: true }) to be visible ❯ scenarios/policies-ui.test.ts:180:84 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/policies-ui.test.ts:175:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules: e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha7a35d542' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui7a35d542.*.*.records.create)', { exact: true }) to be visible ❯ scenarios/policies-ui.test.ts:180:84 ❯ step src/surfaces/browser.ts:154:15 ❯ scenarios/policies-ui.test.ts:175:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification: e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification: e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification: e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method: e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/auth-methods-ui.test.ts:59:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/auth-methods-ui.test.ts:58:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method: e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/auth-methods-ui.test.ts:59:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/auth-methods-ui.test.ts:58:9 ❯ src/surfaces/browser.ts:166:13
[selfhost] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method: e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Add source' }) ❯ scenarios/auth-methods-ui.test.ts:59:66 ❯ step src/surfaces/browser.ts:154:21 ❯ scenarios/auth-methods-ui.test.ts:58:9 ❯ src/surfaces/browser.ts:166:13
Lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Format
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Desktop smoke build
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (cloud 2of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (cloud 3of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (cloud 1of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (cloud 5of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (cloud 6of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Self-host Docker image
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, docker/build-push-action@v6, docker/setup-buildx-action@v3. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (cloud 7of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (cloud 4of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (cloud 8of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E (selfhost)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Artifacts

Produced during runtime
Name Size Digest
RhysSullivan~executor~WFKE48.dockerbuild
78.5 KB
sha256:8729f81f0d676cece251149c5a0758a424c47ad5655614d5573cb3d483ad3885
e2e-runs-cloud-4of8 Expired
21.5 MB
sha256:164cf2c06cc5cdebd1d837cc48742bdd045f62ef50fdb13b476706bc5e46aecc
e2e-runs-cloud-6of8 Expired
21.7 MB
sha256:fc91c38daff7e701e5485d0048eea396a02d63a83d524b9b62f1adeee95c1c90
e2e-runs-cloud-7of8 Expired
12.4 MB
sha256:212057d5b252d60f7da3d3926b7d993df1450ffd5a898e071115738b97bda31b
e2e-runs-cloud-8of8 Expired
9.61 MB
sha256:707ab7ef7f66a1f8c83c381b0e4ee6cce16e3437a5ede31cb2cca2769512bfa0
e2e-runs-selfhost Expired
97 MB
sha256:e1b2e2be41699e5129c6dd041f345aa93c3cc56b8a7637c6b5050dc91ae2ab96