Skip to content

Copy and naming pass: providers, add flows, API keys, policies #3609

Copy and naming pass: providers, add flows, API keys, policies

Copy and naming pass: providers, add flows, API keys, policies #3609

Triggered via pull request July 2, 2026 18:22
Status Failure
Total duration 29m 59s
Artifacts 6

ci.yml

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

Annotations

30 errors and 15 warnings
Self-host Docker image
buildx failed with: ERROR: failed to build: failed to solve: process "/bin/sh -c bun install --frozen-lockfile" did not complete successfully: exit code: 1
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 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#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/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/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: 'alpha627a22ec' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui627a22ec.*.*.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#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alphaa81c19d8' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluia81c19d8.*.*.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#L170
TimeoutError: locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha4d0ced5f' }).locator('button[aria-expanded="false"]').filter({ hasText: 'polui4d0ced5f' }) - waiting for" http://localhost:42600/org-user-b6c7c336/integrations/polui4d0ced5f" navigation to finish... - navigated to "http://localhost:42600/org-user-b6c7c336/integrations/polui4d0ced5f" ❯ 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
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: 'alphab5075147' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluib5075147.*.*.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: 'alphada3c91f4' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluida3c91f4.*.*.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: 'alpha295da01c' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui295da01c.*.*.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
Format
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Lint
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. 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 1of8)
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, 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/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 2of8)
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, 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/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/
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/checkout@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/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 4of8)
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, 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/
Typecheck
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. 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/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 7of8)
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, 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/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/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~0UW2M2.dockerbuild
37.2 KB
sha256:79d834de897932c4811f9a3635794a16dd10b8f9b03d578e25875569439da592
e2e-runs-cloud-4of8
29.7 MB
sha256:29000771695b1bb8c1b057db530e054209b8f8f8f6675066f0d9762f44ce7c05
e2e-runs-cloud-6of8
24.6 MB
sha256:799a4b03dadc7b632e41e5b3995d1d26d967cefb02b0191ece14afb45208b2a8
e2e-runs-cloud-7of8
35.1 MB
sha256:794c8d7820379247862bb2057a970c9c432b53d618fc83f84dcc3ece53bfb591
e2e-runs-cloud-8of8
11.6 MB
sha256:a510aed6e20dac41ff8c5baef249d252e5ffa66101ed1526a2a80a2b1b05e0cd
e2e-runs-selfhost
95.5 MB
sha256:e945f7ddcef59fe97a0f8bfe299d6d7e553d49e3cd5419f132777db41d01909a