feat: Support built-in authentication in the Cloudflare host #5340
ci.yml
on: pull_request
Changed paths
8s
Matrix: e2e
Cloud evaluated closure
51s
Desktop smoke build
47s
Self-host Docker image
1m 0s
Annotations
95 errors and 79 warnings
|
Test
Process completed with exit code 1.
|
|
Test
@executor-js/host-cloudflare#test: command (/home/runner/_work/executor/executor/apps/host-cloudflare) /home/runner/.bun/bin/bun run test exited (1)
|
|
src/worker.e2e.node.test.ts > cloudflare host e2e with built-in auth (AUTH_MODE=builtin) > manages the entire first-run setup, signup restrictions, and invite code flow:
apps/host-cloudflare/src/worker.e2e.node.test.ts#L583
AssertionError: expected 500 to be 200 // Object.is equality
- Expected
+ Received
- 200
+ 500
❯ src/worker.e2e.node.test.ts:583:33
|
|
Self-host Docker image
buildx failed with: /src/solver/jobs.go:1182
|
|
E2E (cloud 4of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/google-health-checks.test.ts > Google · OAuth catalog connection without a health check is healthy from the grant:
e2e/src/surfaces/browser.ts#L149
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: /Connect/ }).first()
❯ clickToReveal src/surfaces/browser.ts:149:19
❯ scenarios/google-health-checks.test.ts:92:13
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/google-health-checks.test.ts:89:5
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/google-health-checks.test.ts > Google · Calendar and Gmail catalog health checks run against the emulator:
e2e/src/surfaces/browser.ts#L149
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: /Connect/ }).first()
❯ clickToReveal src/surfaces/browser.ts:149:19
❯ scenarios/google-health-checks.test.ts:92:13
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/google-health-checks.test.ts:89:5
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 9of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/openapi-multi-key-auth-ui.test.ts > OpenAPI · the Cloudflare email and key auth method shows separate credential fields:
e2e/scenarios/openapi-multi-key-auth-ui.test.ts#L66
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Connections').first() to be visible
❯ scenarios/openapi-multi-key-auth-ui.test.ts:66:57
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/openapi-multi-key-auth-ui.test.ts:64:11
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/member-invite-seat-limit.test.ts > Billing · a free org fills its 3 member seats, then invites are blocked with a reason:
e2e/cloud/member-invite-seat-limit.test.ts#L50
TimeoutError: page.waitForURL: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for navigation until "load"
============================================================
❯ cloud/member-invite-seat-limit.test.ts:50:20
❯ step src/surfaces/browser.ts:276:15
❯ cloud/member-invite-seat-limit.test.ts:48:7
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 13of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/org-slug-routing.test.ts > Org URLs · console paths carry the organization slug:
e2e/scenarios/org-slug-routing.test.ts#L52
TimeoutError: page.waitForURL: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for navigation until "load"
============================================================
❯ scenarios/org-slug-routing.test.ts:52:20
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/org-slug-routing.test.ts:50:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/connection-health-verdict.test.ts > Health checks (UI) · every surface showing a broken connection paints a verdict, and probes exactly once:
e2e/scenarios/connection-health-verdict.test.ts#L445
TimeoutError: page.waitForResponse: Timeout 30000ms exceeded while waiting for event "response"
❯ scenarios/connection-health-verdict.test.ts:445:32
❯ step src/surfaces/browser.ts:276:21
❯ scenarios/connection-health-verdict.test.ts:444:9
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 8of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/connect-handoff.test.ts > Connect · the agentic handoff URL opens this deployment's add-account flow and the pasted key works:
e2e/scenarios/connect-handoff.test.ts#L222
TimeoutError: locator.waitFor: Timeout 15000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: /Add connection/ }) to be visible
❯ scenarios/connect-handoff.test.ts:222:69
❯ step src/surfaces/browser.ts:276:21
❯ scenarios/connect-handoff.test.ts:221:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/oauth-callback-unauthenticated.test.ts > OAuth callback · a signed-out callback uses login returnTo and resumes the connection:
e2e/cloud/oauth-callback-unauthenticated.test.ts#L120
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Sign in to manage your tools and integrations') to be visible
❯ cloud/oauth-callback-unauthenticated.test.ts:120:79
❯ step src/surfaces/browser.ts:276:15
❯ cloud/oauth-callback-unauthenticated.test.ts:117:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/admin-users-console.test.ts > Admin · the Users page shows every member and what each has connected, and refuses a plain member:
e2e/cloud/admin-users-console.test.ts#L131
TimeoutError: page.waitForURL: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for navigation until "load"
============================================================
❯ cloud/admin-users-console.test.ts:131:24
❯ step src/surfaces/browser.ts:276:15
❯ cloud/admin-users-console.test.ts:129:11
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 7of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/oauth-client-handoff.test.ts > OAuth client · agent hands off, the human enters the secret in the browser, and the app connects:
e2e/scenarios/oauth-client-handoff.test.ts#L410
TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Register OAuth app' }) to be visible
❯ scenarios/oauth-client-handoff.test.ts:410:16
❯ step src/surfaces/browser.ts:276:21
❯ scenarios/oauth-client-handoff.test.ts:407:11
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/integration-families.test.ts > Integrations · related MCP services collapse into their declared family:
e2e/scenarios/integration-families.test.ts#L52
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Integrations').first() to be visible
❯ scenarios/integration-families.test.ts:52:58
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/integration-families.test.ts:50:11
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/oauth-callback-org-scope.test.ts > OAuth callback · state-scoped org survives a callback while the session cookie points elsewhere:
e2e/cloud/oauth-callback-org-scope.test.ts#L65
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: /Org user-d57b721a/ }) to be visible
❯ expectOrgShell cloud/oauth-callback-org-scope.test.ts:65:80
❯ cloud/oauth-callback-org-scope.test.ts:217:9
❯ step src/surfaces/browser.ts:276:15
❯ cloud/oauth-callback-org-scope.test.ts:215:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/connection-modal-oauth-abandon.test.ts > Connections · closing the add-connection modal after abandoning OAuth lets you try again (not stuck on Connecting):
e2e/cloud/connection-modal-oauth-abandon.test.ts#L103
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add connection', exact: true })
❯ cloud/connection-modal-oauth-abandon.test.ts:103:31
❯ step src/surfaces/browser.ts:276:15
❯ cloud/connection-modal-oauth-abandon.test.ts:101:9
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 11of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/first-party-oauth.test.ts > First-party OAuth · unlisted Google still authorizes its bundle and refuses admin scopes:
e2e/src/surfaces/browser.ts#L149
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: /Connect/ }).first()
❯ clickToReveal src/surfaces/browser.ts:149:19
❯ scenarios/first-party-oauth.test.ts:187:17
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/first-party-oauth.test.ts:184:9
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/artifact-loading-surface.test.ts > Artifacts · opening an artifact shows one loading surface, not three:
e2e/scenarios/artifact-loading-surface.test.ts#L237
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('link', { name: 'Open artifact Loading Surface 68760973' }) to be visible
❯ scenarios/artifact-loading-surface.test.ts:237:14
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/artifact-loading-surface.test.ts:232:9
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/org-delete.test.ts > Organizations · an admin deletes the organization from settings:
e2e/cloud/org-delete.test.ts#L27
TimeoutError: locator.fill: Timeout 30000ms exceeded.
Call log:
- waiting for getByPlaceholder('Northwind Labs')
❯ cloud/org-delete.test.ts:27:55
❯ step src/surfaces/browser.ts:276:15
❯ cloud/org-delete.test.ts:25:7
❯ src/surfaces/browser.ts:288: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#L45
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Sign in to manage your tools and integrations') to be visible
❯ cloud/auth-routing-flow.test.ts:45:79
❯ step src/surfaces/browser.ts:276:15
❯ cloud/auth-routing-flow.test.ts:43:7
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 10of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/google-disabled-api.test.ts > Google · a disabled upstream API reads as API disabled with the enable link, not Expired:
e2e/scenarios/google-disabled-api.test.ts#L129
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: /Connect/ }).first()
❯ scenarios/google-disabled-api.test.ts:129:10
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/google-disabled-api.test.ts:124:5
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/connection-remove-confirm.test.ts > Connections (UI) · Remove asks for confirmation; cancel keeps, confirm removes:
e2e/scenarios/connection-remove-confirm.test.ts#L82
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for locator('section').filter({ has: getByRole('heading', { name: 'Connections', level: 3 }) }).getByText('main', { exact: true }) to be visible
❯ scenarios/connection-remove-confirm.test.ts:82:23
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/connection-remove-confirm.test.ts:80:11
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/org-switcher.test.ts > Organizations · switching organizations switches the workspace:
e2e/cloud/org-switcher.test.ts#L25
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByPlaceholder('Northwind Labs') to be visible
❯ cloud/org-switcher.test.ts:25:55
❯ step src/surfaces/browser.ts:276:15
❯ cloud/org-switcher.test.ts:23:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/frontend-error-reporting.test.ts > Frontend errors · a failed API request is reported with a real message:
e2e/cloud/frontend-error-reporting.test.ts#L76
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Connect' }).first() to be visible
❯ cloud/frontend-error-reporting.test.ts:76:69
❯ step src/surfaces/browser.ts:276:15
❯ cloud/frontend-error-reporting.test.ts:74:7
❯ src/surfaces/browser.ts:288:13
|
|
E2E (selfhost 5of10)
Process completed with exit code 1.
|
|
[selfhost] selfhost/oauth-app-modal.test.ts > OAuth apps · a registered app is edited and removed from the connect modal:
e2e/selfhost/oauth-app-modal.test.ts#L86
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add connection' })
❯ selfhost/oauth-app-modal.test.ts:86:72
❯ step src/surfaces/browser.ts:276:15
❯ selfhost/oauth-app-modal.test.ts:84:11
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] selfhost/cli-device-login.test.ts > CLI · executor login device flow → authenticated /api call:
e2e/selfhost/cli-device-login.test.ts#L103
TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
- waiting for getByRole('button', { name: /Authorize device/i }) to be visible
❯ selfhost/cli-device-login.test.ts:103:16
❯ step src/surfaces/browser.ts:276:15
❯ selfhost/cli-device-login.test.ts:98:11
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/google-health-checks.test.ts > Google · OAuth catalog connection without a health check is healthy from the grant:
e2e/src/surfaces/browser.ts#L149
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: /Connect/ }).first()
❯ clickToReveal src/surfaces/browser.ts:149:19
❯ scenarios/google-health-checks.test.ts:92:13
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/google-health-checks.test.ts:89:5
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/google-health-checks.test.ts > Google · Calendar and Gmail catalog health checks run against the emulator:
e2e/src/surfaces/browser.ts#L149
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: /Connect/ }).first()
❯ clickToReveal src/surfaces/browser.ts:149:19
❯ scenarios/google-health-checks.test.ts:92:13
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/google-health-checks.test.ts:89:5
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/connect-handoff-session.test.ts > Connect · developer session: agent chat → handoff link → paste key → verified send:
e2e/scenarios/connect-handoff-session.test.ts#L155
TimeoutError: locator.waitFor: Timeout 15000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: /Add connection/ }) to be visible
❯ scenarios/connect-handoff-session.test.ts:155:20
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/connect-handoff-session.test.ts:151:15
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 16of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/connect-handoff-session.test.ts > Connect · developer session: agent chat → handoff link → paste key → verified send:
e2e/scenarios/connect-handoff-session.test.ts#L155
TimeoutError: locator.waitFor: Timeout 15000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: /Add connection/ }) to be visible
❯ scenarios/connect-handoff-session.test.ts:155:20
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/connect-handoff-session.test.ts:151:15
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/artifact-preview-gallery.test.ts > Artifacts · the gallery shows each artifact's real layout, in light and dark:
e2e/scenarios/artifact-preview-gallery.test.ts#L172
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Artifacts', level: 1 }) to be visible
❯ scenarios/artifact-preview-gallery.test.ts:172:74
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/artifact-preview-gallery.test.ts:170:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/org-slug-foreign.test.ts > Org URLs · opening another of your orgs by slug works without switching the session:
e2e/cloud/org-slug-foreign.test.ts#L72
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Integrations').first() to be visible
❯ cloud/org-slug-foreign.test.ts:72:54
❯ step src/surfaces/browser.ts:276:15
❯ cloud/org-slug-foreign.test.ts:70:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/org-api-keys-console.test.ts > Admin · organization keys are minted in the console and authenticate the admin API:
e2e/cloud/org-api-keys-console.test.ts#L50
TimeoutError: page.waitForURL: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for navigation until "load"
============================================================
❯ cloud/org-api-keys-console.test.ts:50:20
❯ step src/surfaces/browser.ts:276:15
❯ cloud/org-api-keys-console.test.ts:48:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/connect-panel.test.ts > Connect · the agent-connect panel gives working copy for both transports:
e2e/cloud/connect-panel.test.ts#L22
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Connect an agent').first() to be visible
❯ cloud/connect-panel.test.ts:22:58
❯ step src/surfaces/browser.ts:276:15
❯ cloud/connect-panel.test.ts:20:7
❯ src/surfaces/browser.ts:288:13
|
|
E2E (selfhost 8of10)
Process completed with exit code 1.
|
|
[selfhost] selfhost/mcp-request-headers-add.test.ts > MCP headers · a 403 edge gate is addable with service-token headers:
e2e/selfhost/mcp-request-headers-add.test.ts#L77
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('How does this server authenticate?') to be visible
❯ selfhost/mcp-request-headers-add.test.ts:77:72
❯ step src/surfaces/browser.ts:276:15
❯ selfhost/mcp-request-headers-add.test.ts:73:11
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] selfhost/admin-users-pager.test.ts > Admin · the Users pager walks a workspace larger than one page without dropping or repeating anyone:
e2e/selfhost/admin-users-pager.test.ts#L102
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('link', { name: 'Users' })
❯ selfhost/admin-users-pager.test.ts:102:57
❯ step src/surfaces/browser.ts:276:15
❯ selfhost/admin-users-pager.test.ts:100:7
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/oauth-client-handoff.test.ts > OAuth client · agent hands off, the human enters the secret in the browser, and the app connects:
e2e/scenarios/oauth-client-handoff.test.ts#L410
TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Register OAuth app' }) to be visible
❯ scenarios/oauth-client-handoff.test.ts:410:16
❯ step src/surfaces/browser.ts:276:21
❯ scenarios/oauth-client-handoff.test.ts:407:11
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/connection-health-verdict.test.ts > Health checks (UI) · every surface showing a broken connection paints a verdict, and probes exactly once:
e2e/scenarios/connection-health-verdict.test.ts#L445
TimeoutError: page.waitForResponse: Timeout 30000ms exceeded while waiting for event "response"
❯ scenarios/connection-health-verdict.test.ts:445:32
❯ step src/surfaces/browser.ts:276:21
❯ scenarios/connection-health-verdict.test.ts:444:9
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/artifact-preview-gallery.test.ts > Artifacts · the gallery shows each artifact's real layout, in light and dark:
e2e/scenarios/artifact-preview-gallery.test.ts#L172
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Artifacts', level: 1 }) to be visible
❯ scenarios/artifact-preview-gallery.test.ts:172:74
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/artifact-preview-gallery.test.ts:170:7
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/artifact-loading-surface.test.ts > Artifacts · opening an artifact shows one loading surface, not three:
e2e/scenarios/artifact-loading-surface.test.ts#L237
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('link', { name: 'Open artifact Loading Surface 007a4d88' }) to be visible
❯ scenarios/artifact-loading-surface.test.ts:237:14
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/artifact-loading-surface.test.ts:232:9
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 5of16)
Process completed with exit code 1.
|
|
[cloud] scenarios/mcp-cloudflare-codemode-warning.test.ts > MCP add flow · a Cloudflare URL without codemode=false gets the opt-out warning:
e2e/scenarios/mcp-cloudflare-codemode-warning.test.ts#L25
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByPlaceholder('https://mcp.example.com') to be visible
❯ scenarios/mcp-cloudflare-codemode-warning.test.ts:25:47
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/mcp-cloudflare-codemode-warning.test.ts:23:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/connect-deep-link.test.ts > Connect · /connect/<slug> lands an end user in that integration's connect flow:
e2e/scenarios/connect-deep-link.test.ts#L102
TimeoutError: page.waitForURL: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for navigation until "load"
============================================================
❯ scenarios/connect-deep-link.test.ts:102:24
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/connect-deep-link.test.ts:98:11
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/artifacts.test.ts > Artifacts · a tweak updates the artifact in place, and a tweak that cannot render is refused:
e2e/scenarios/artifacts.test.ts#L747
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for locator('[data-testid="artifact-shell-frame"]').contentFrame().locator('iframe').contentFrame().locator('[data-testid="artifact-marker"]').filter({ hasText: 'second-645f41e7' }) to be visible
❯ scenarios/artifacts.test.ts:747:14
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/artifacts.test.ts:741:9
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/artifacts.test.ts > Artifacts · renaming and deleting in the console is what the agent sees next:
e2e/scenarios/artifacts.test.ts#L601
TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
- waiting for getByRole('link', { name: 'Open artifact Draft Dashboard 8649da84' }) to be visible
❯ scenarios/artifacts.test.ts:601:84
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/artifacts.test.ts:599:9
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/artifacts.test.ts > Artifacts · create-artifact hands a non-Apps client a deep link that renders the live component:
e2e/scenarios/artifacts.test.ts#L272
TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Release Readiness 1776aec5' }) to be visible
❯ scenarios/artifacts.test.ts:272:60
❯ step src/surfaces/browser.ts:276:21
❯ scenarios/artifacts.test.ts:271:9
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/mcp-browser-resume-page.test.ts > MCP approval · browser resume page approves a paused execution through the UI:
e2e/cloud/mcp-browser-resume-page.test.ts#L227
TimeoutError: page.waitForResponse: Timeout 30000ms exceeded while waiting for event "response"
❯ cloud/mcp-browser-resume-page.test.ts:227:48
❯ step src/surfaces/browser.ts:276:21
❯ cloud/mcp-browser-resume-page.test.ts:222:11
❯ src/surfaces/browser.ts:288:13
|
|
E2E (selfhost 9of10)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (selfhost 9of10)
The operation was canceled.
|
|
[selfhost] selfhost/oauth-resource-indicator-clear.test.ts > OAuth client · a cleared resource indicator persists and the authorize request omits RFC 8707:
e2e/selfhost/oauth-resource-indicator-clear.test.ts#L132
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add connection' }).first()
❯ selfhost/oauth-resource-indicator-clear.test.ts:132:78
❯ step src/surfaces/browser.ts:276:15
❯ selfhost/oauth-resource-indicator-clear.test.ts:130:9
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] selfhost/mcp-oauth-slow-connect.test.ts > MCP OAuth · a slow discovery round trip still opens the sign-in window:
e2e/selfhost/mcp-oauth-slow-connect.test.ts#L73
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('How does this server authenticate?') to be visible
❯ selfhost/mcp-oauth-slow-connect.test.ts:73:72
❯ step src/surfaces/browser.ts:276:15
❯ selfhost/mcp-oauth-slow-connect.test.ts:69:11
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] selfhost/admin-users-console.test.ts > Admin · a self-hosted owner sees the workspace's users; an invited member is refused:
e2e/selfhost/admin-users-console.test.ts#L116
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for locator('nav').getByRole('link', { name: 'Users' }).first()
❯ selfhost/admin-users-console.test.ts:116:16
❯ step src/surfaces/browser.ts:276:15
❯ selfhost/admin-users-console.test.ts:110:11
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules:
e2e/src/surfaces/browser.ts#L149
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('tab', { name: 'Tools' })
❯ clickToReveal src/surfaces/browser.ts:149:19
❯ scenarios/policies-ui.test.ts:170:17
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/policies-ui.test.ts:164:9
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/google-photos-preset-ui.test.ts > Google Photos: separated catalog presets open a Photos service add flow:
e2e/src/surfaces/browser.ts#L149
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Connect' })
❯ clickToReveal src/surfaces/browser.ts:149:19
❯ scenarios/google-photos-preset-ui.test.ts:22:17
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/google-photos-preset-ui.test.ts:17:7
❯ src/surfaces/browser.ts:288:13
|
|
[selfhost] scenarios/connect-handoff.test.ts > Connect · the agentic handoff URL opens this deployment's add-account flow and the pasted key works:
e2e/scenarios/connect-handoff.test.ts#L222
TimeoutError: locator.waitFor: Timeout 15000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: /Add connection/ }) to be visible
❯ scenarios/connect-handoff.test.ts:222:69
❯ step src/surfaces/browser.ts:276:21
❯ scenarios/connect-handoff.test.ts:221:7
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 1of16)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (cloud 1of16)
The operation was canceled.
|
|
E2E (selfhost 4of10)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (selfhost 4of10)
The operation was canceled.
|
|
E2E (selfhost 2of10)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (selfhost 2of10)
The operation was canceled.
|
|
E2E (selfhost 10of10)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (selfhost 10of10)
The operation was canceled.
|
|
E2E (cloud 12of16)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (selfhost 3of10)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (cloud 12of16)
The operation was canceled.
|
|
E2E (selfhost 3of10)
The operation was canceled.
|
|
[cloud] scenarios/google-photos-preset-ui.test.ts > Google Photos: separated catalog presets open a Photos service add flow:
e2e/src/surfaces/browser.ts#L149
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Connect' })
❯ clickToReveal src/surfaces/browser.ts:149:19
❯ scenarios/google-photos-preset-ui.test.ts:22:17
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/google-photos-preset-ui.test.ts:17:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] scenarios/docs-link.test.ts > Shell · the sidebar links to the docs from inside the app:
e2e/scenarios/docs-link.test.ts#L23
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Integrations').first() to be visible
❯ scenarios/docs-link.test.ts:23:54
❯ step src/surfaces/browser.ts:276:15
❯ scenarios/docs-link.test.ts:21:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/org-multitab-cookie.test.ts > Org scope · plugin API requests carry the URL organization selector:
e2e/cloud/org-multitab-cookie.test.ts#L139
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByPlaceholder('https://api.example.com/openapi.json') to be visible
❯ cloud/org-multitab-cookie.test.ts:139:77
❯ step src/surfaces/browser.ts:276:15
❯ cloud/org-multitab-cookie.test.ts:137:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/org-multitab-cookie.test.ts > Org tabs · two tabs on different orgs stay independent (URL-scoped, no cookie steal):
e2e/cloud/org-multitab-cookie.test.ts#L58
TimeoutError: locator.fill: Timeout 30000ms exceeded.
Call log:
- waiting for getByPlaceholder('Northwind Labs')
❯ cloud/org-multitab-cookie.test.ts:58:55
❯ step src/surfaces/browser.ts:276:15
❯ cloud/org-multitab-cookie.test.ts:56:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/auth-hint.test.ts > Auth hint · logout clears the hint with the session:
e2e/cloud/auth-hint.test.ts#L80
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('link', { name: 'Policies' }) to be visible
❯ cloud/auth-hint.test.ts:80:60
❯ step src/surfaces/browser.ts:276:15
❯ cloud/auth-hint.test.ts:78:7
❯ src/surfaces/browser.ts:288:13
|
|
[cloud] cloud/auth-hint.test.ts > Auth hint · the FIRST load on a fresh browser paints the real shell — the gate minted the hint:
e2e/cloud/auth-hint.test.ts#L40
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('link', { name: 'Policies' }) to be visible
❯ cloud/auth-hint.test.ts:40:60
❯ step src/surfaces/browser.ts:276:15
❯ cloud/auth-hint.test.ts:37:7
❯ src/surfaces/browser.ts:288:13
|
|
E2E (cloud 14of16)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (cloud 14of16)
The operation was canceled.
|
|
E2E (cloud 15of16)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (cloud 15of16)
The operation was canceled.
|
|
E2E (selfhost 7of10)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (selfhost 7of10)
The operation was canceled.
|
|
E2E (cloud 6of16)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (cloud 6of16)
The operation was canceled.
|
|
CI
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (selfhost 6of10)
Canceling since a higher priority waiting request for ci-refs/pull/1830/merge exists
|
|
E2E (selfhost 6of10)
The operation was canceled.
|
|
Changed paths
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, dorny/paths-filter@v3. 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/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/
|
|
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 (local 2of2)
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/
|
|
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, 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
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Desktop smoke build
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
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, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Typecheck
The `catch` callback in `Effect.try` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.try` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Typecheck
The `catch` callback in `Effect.try` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
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/
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.tryPromise` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
Cloud evaluated closure
The `catch` callback in `Effect.try` returns `unknown`, so the Effect error type stays untyped. A specific typed error preserves error-channel information, for example by narrowing the value or wrapping it in `Data.TaggedError`. effect(unknownInEffectCatch)
|
|
E2E (local 1of2)
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/
|
|
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Self-host Docker image
Skipping sticky disk commit due to previous step failures
|
|
Self-host Docker image
- Step: unknown (failed)
|
|
Self-host Docker image
Found 2 failed/cancelled steps in previous workflow steps
|
|
E2E (cloud 3of16)
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 (selfhost 1of10)
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 2of16)
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 4of16)
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 9of16)
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 13of16)
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 8of16)
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 7of16)
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 11of16)
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 10of16)
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 5of10)
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 16of16)
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 8of10)
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 5of16)
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 9of10)
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 1of16)
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 (selfhost 4of10)
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 (selfhost 2of10)
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 (selfhost 10of10)
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 12of16)
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 (selfhost 3of10)
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 14of16)
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 15of16)
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 (selfhost 7of10)
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 6of16)
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 (selfhost 6of10)
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/
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
e2e-runs-cloud-10of16
Expired
|
985 KB |
sha256:ccafa3270cdb7906c5382538bc5105c6210be80a48fe30a551963a6375cb3fe9
|
|
|
e2e-runs-cloud-11of16
Expired
|
841 KB |
sha256:58a927167d37db8f50e918106b761815488b1d67408c8d5bc956fe8f16fb6290
|
|
|
e2e-runs-cloud-13of16
Expired
|
529 KB |
sha256:c8f647a119dd813b5173fc2ba4a12d767f120d996c7313cfb964d22dd1cb8a32
|
|
|
e2e-runs-cloud-16of16
Expired
|
1.07 MB |
sha256:8f87059a09a6e78fa1612c0132fb04c732ad81484a077683fa6eb114761ad071
|
|
|
e2e-runs-cloud-4of16
Expired
|
480 KB |
sha256:b9ef21bf1a4f2cc1d2b929d7f009b42a3d2f845c9aae19a4a4f6a6f65ac63d93
|
|
|
e2e-runs-cloud-5of16
Expired
|
1.5 MB |
sha256:98c8b115a2e0076c729d624c01196770ba3a123d04ae124dec8cff7d47e35a7e
|
|
|
e2e-runs-cloud-7of16
Expired
|
1.01 MB |
sha256:b0431b838c4cf24bc18a9b98161e24944c2a68c0e1fee01bb082fcb7e02e48cf
|
|
|
e2e-runs-cloud-8of16
Expired
|
866 KB |
sha256:6ddf977eaca4b3ca8212377b46a0c005c5b88a6e18c751c0fa3289e4442bbee8
|
|
|
e2e-runs-cloud-9of16
Expired
|
531 KB |
sha256:4fb96f4cca1ca70a18e7e939ec5624396586070d93e7ac859f078f3a6adf3c81
|
|
|
e2e-runs-selfhost-5of10
Expired
|
8.78 MB |
sha256:06b323920f6b3ce171eeb5e2a83280c30f39c9d61d30986f4b79259a81be8d5f
|
|
|
e2e-runs-selfhost-8of10
Expired
|
11.1 MB |
sha256:d6951d1da03fe17592f0d5fda7f32c5eda83d8475403cb5b7fa95d697af5f3f7
|
|