Skip to content

Require MFA to unlock cloud administration #6119

Require MFA to unlock cloud administration

Require MFA to unlock cloud administration #6119

Triggered via pull request September 24, 2026 17:14
Status Failure
Total duration 6m 30s
Artifacts –

ci.yml

on: pull_request
Changed paths
11s
Changed paths
Matrix: e2e
Cloud evaluated closure
1m 30s
Cloud evaluated closure
Desktop smoke build
1m 9s
Desktop smoke build
Self-host Docker image
2m 16s
Self-host Docker image
Fit to window
Zoom out
Zoom in

Annotations

53 errors and 76 warnings
E2E (cloud 1of16)
Process completed with exit code 1.
[cloud] scenarios/health-checks-ui.test.ts > Health checks (UI) · add screen large spec: typing reaches an operation beyond the preview's top slice: e2e/scenarios/health-checks-ui.test.ts#L510
TimeoutError: page.waitForURL: Timeout 30000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ ❯ scenarios/health-checks-ui.test.ts:510:26 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/health-checks-ui.test.ts:502:13 ❯ src/surfaces/browser.ts:288:13
src/auth/mirror-feeders.node.test.ts > account service writes through to the mirror > updateMemberRole writes the role WorkOS returned: apps/cloud/src/account/workos-account-service.ts#L151
AccountForbidden: Verify your identity to use organization admin settings. ❯ Array.<anonymous> src/account/workos-account-service.ts:151:25 ❯ next ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1289:23 ❯ FiberImpl.runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14 ❯ resume ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:991:15 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { _tag: 'AccountForbidden' }
src/auth/mirror-feeders.node.test.ts > account service writes through to the mirror > removeMember tombstones the mirror row after the WorkOS delete: apps/cloud/src/account/workos-account-service.ts#L151
AccountForbidden: Verify your identity to use organization admin settings. ❯ Array.<anonymous> src/account/workos-account-service.ts:151:25 ❯ next ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1289:23 ❯ FiberImpl.runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14 ❯ resume ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:991:15 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { _tag: 'AccountForbidden' }
src/auth/mirror-feeders.node.test.ts > account service writes through to the mirror > inviteMember scans an organization the backfill never covered before counting its seats, once: apps/cloud/src/auth/mirror-feeders.node.test.ts#L1361
AssertionError: expected AccountForbidden: Verify your identity to… { _tag: '…' } to match object { message: StringContaining{…} } (1 matching property omitted from actual) - Expected + Received - { - "message": StringContaining "Your plan includes 3 members", + AccountForbidden { + "message": "Verify your identity to use organization admin settings.", + "_tag": "AccountForbidden", } ❯ Array.<anonymous> src/auth/mirror-feeders.node.test.ts:1361:23 ❯ next ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/core.ts:531:30 ❯ FiberImpl.runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14
src/auth/mirror-feeders.node.test.ts > account service writes through to the mirror > inviteMember mirrors the pending membership WorkOS created for the invitee: apps/cloud/src/account/workos-account-service.ts#L151
AccountForbidden: Verify your identity to use organization admin settings. ❯ Array.<anonymous> src/account/workos-account-service.ts:151:25 ❯ next ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1289:23 ❯ FiberImpl.runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14 ❯ resume ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:991:15 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { _tag: 'AccountForbidden' }
src/auth/mirror-feeders.node.test.ts > session handlers read membership from the mirror > finishes on a retry after WorkOS already deleted the org: apps/cloud/src/auth/mirror-feeders.node.test.ts#L924
AssertionError: expected 403 to be 500 // Object.is equality - Expected + Received - 500 + 403 ❯ src/auth/mirror-feeders.node.test.ts:924:26
src/auth/mirror-feeders.node.test.ts > session handlers read membership from the mirror > finishes on a retry after the billing cancel failed, and only purges once billing is cancelled: apps/cloud/src/auth/mirror-feeders.node.test.ts#L883
AssertionError: the failed billing cancel is surfaced, not hidden: expected 403 to be 500 // Object.is equality - Expected + Received - 500 + 403 ❯ src/auth/mirror-feeders.node.test.ts:883:79
src/auth/mirror-feeders.node.test.ts > session handlers read membership from the mirror > revokes every member's access the moment deletion starts, even when the local purge fails, and finishes on a retry after WorkOS already deleted the org: apps/cloud/src/auth/mirror-feeders.node.test.ts#L809
AssertionError: the failed purge is surfaced, not hidden: expected 403 to be 500 // Object.is equality - Expected + Received - 500 + 403 ❯ src/auth/mirror-feeders.node.test.ts:809:70
src/admin/admin-users-api.node.test.ts > authorizeTenant · admin session > an active admin resolves the selected org as the tenant: apps/cloud/src/admin/admin-users-api.ts#L88
{ _tag: 'AdminUsersForbidden', message: '', stack: 'AdminUsersForbidden: \n' + ' at Array.<anonymous> (/home/runner/_work/executor/executor/apps/cloud/src/admin/admin-users-api.ts:88:55)\n' + ' at Generator.next (<anonymous>)\n' + ' at Object.~effect/Effect/successCont (file:///home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/dist/internal/effect.js:868:26)\n' + ' at Object.~effect/Effect/evaluate (file:///home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/dist/internal/core.js:312:30)\n' + ' at FiberImpl.runLoop (file:///home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/dist/internal/effect.js:444:107)\n' + ' at FiberImpl.evaluate (file:///home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/dist/internal/effect.js:412:23)\n' + ' at file:///home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/dist/internal/effect.js:719:15\n' + ' at file:///home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/dist/internal/effect.js:687:50\n' + ' at processTicksAndRejections (node:internal/process/task_queues:103:5)', name: 'AdminUsersForbidden', stacks: [ { method: 'Array.<anonymous>', file: '/home/runner/_work/executor/executor/apps/cloud/src/admin/admin-users-api.ts', line: 88, column: 55 }, { line: 1276, column: 25, file: '/home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts', method: 'next' }, { line: 531, column: 30, file: '/home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/core.ts', method: 'Object.~effect/Effect/evaluate' }, { line: 633, column: 39, file: '/home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts', method: 'FiberImpl.runLoop' }, { line: 593, column: 22, file: '/home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts', method: 'runLoop' }, { line: 1030, column: 14, file: '/home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts', method: 'evaluate' }, { line: 972, column: 13, file: '/home/runner/_work/executor/executor/node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts', method: 'resume' } ] } ❯ Array.<anonymous> src/admin/admin-users-api.ts:88:55 ❯ next ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/core.ts:531:30 ❯ FiberImpl.runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14 ❯ resume ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:972:13 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { _tag: 'AdminUsersForbidden' }
src/account/org-api-key-revoke.node.test.ts > revokeOrgApiKey · provider boundary > a user-scoped key id fails cleanly through this path: apps/cloud/src/account/org-api-key-revoke.node.test.ts#L243
AssertionError: expected AccountForbidden: Verify your identity to… { _tag: '…' } to be an instance of AccountError ❯ Array.<anonymous> src/account/org-api-key-revoke.node.test.ts:243:21 ❯ next ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/core.ts:531:30 ❯ FiberImpl.runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14
src/account/org-api-key-revoke.node.test.ts > revokeOrgApiKey · provider boundary > an org admin revokes an org-owned key: apps/cloud/src/account/workos-account-service.ts#L151
AccountForbidden: Verify your identity to use organization admin settings. ❯ Array.<anonymous> src/account/workos-account-service.ts:151:25 ❯ next ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1289:23 ❯ FiberImpl.runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14 ❯ resume ../../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:972:13 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { _tag: 'AccountForbidden' }
E2E (cloud 7of16)
Process completed with exit code 1.
[cloud] cloud/billing-payment-method-update.test.ts > Billing · adding and changing the card shows the current card without a reload: e2e/cloud/billing-payment-method-update.test.ts#L74
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByText('Payment method', { exact: true }).locator('xpath=ancestor::div[contains(@Class,\'justify-between\')][1]').getByText('No card on file') to be visible ❯ cloud/billing-payment-method-update.test.ts:74:61 ❯ step src/surfaces/browser.ts:276:15 ❯ cloud/billing-payment-method-update.test.ts:65:7 ❯ src/surfaces/browser.ts:288:13
E2E (cloud 13of16)
Process completed with exit code 1.
E2E (cloud 10of16)
Process completed with exit code 1.
E2E (cloud 6of16)
Process completed with exit code 1.
[cloud] cloud/mcp-workos-blip-session-survival.test.ts > MCP sessions · a revoked membership fails closed on the next request and condemns the session: e2e/cloud/support/session.ts#L84
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/support/session.ts:84:13
[cloud] cloud/connect-link-multi-org.test.ts > Connect · an org-scoped connect link resolves a multi-org recipient in the SENDING org: e2e/cloud/support/session.ts#L84
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/support/session.ts:84:13
E2E (cloud 9of16)
Process completed with exit code 1.
[cloud] cloud/workspace-write-permissions.test.ts > Workspace writes · cloud members are denied while Personal writes and admin writes succeed: e2e/cloud/support/session.ts#L84
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/support/session.ts:84: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#L59
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('button', { name: 'Invite member' }) to be visible ❯ cloud/member-invite-seat-limit.test.ts:59:67 ❯ step src/surfaces/browser.ts:276:15 ❯ cloud/member-invite-seat-limit.test.ts:57:7 ❯ src/surfaces/browser.ts:288:13
E2E (cloud 11of16)
Process completed with exit code 1.
[cloud] scenarios/no-auth-connection.test.ts > Connections · an agent creates a no-auth connection over the core tool and the public API answers 200: e2e/scenarios/no-auth-connection.test.ts#L172
AssertionError: addSpec succeeded: {"ok":false,"error":{"code":"org_write_denied","message":"Adding connections or changing workspace settings requires a workspace admin."}}: expected false to be true // Object.is equality - Expected + Received - true + false ❯ Array.<anonymous> scenarios/no-auth-connection.test.ts:172:71 ❯ next ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/core.ts:531:30 ❯ FiberImpl.runLoop ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14 ❯ resume ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:972: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#L186
AssertionError: cold open: the stage changed size mid-load at sample 3 ({"x":224,"y":85,"w":1056,"h":715} vs {"x":224,"y":48,"w":1056,"h":752}) — the artifact appeared in a different box than the skeleton held: expected false to be true // Object.is equality - Expected + Received - true + false ❯ expectSingleLoadingSurface scenarios/artifact-loading-surface.test.ts:186:7 ❯ scenarios/artifact-loading-surface.test.ts:303:11 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/artifact-loading-surface.test.ts:302: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#L44
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByText('Permanently delete this organization') to be visible ❯ cloud/org-delete.test.ts:44:70 ❯ step src/surfaces/browser.ts:276:15 ❯ cloud/org-delete.test.ts:41:7 ❯ src/surfaces/browser.ts:288:13
E2E (cloud 14of16)
Process completed with exit code 1.
[cloud] scenarios/provider-plugins-ui.test.ts > Google and Microsoft products are registry cards that resolve into prefilled add flows: e2e/src/scenario.ts#L138
Error: Test timed out in 120000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ scenario src/scenario.ts:138:3 ❯ scenarios/provider-plugins-ui.test.ts:14:1
[cloud] cloud/connection-owner-isolation.test.ts > Connections · an org-owned connection is shared with every member of the org: e2e/cloud/connection-owner-isolation.test.ts#L83
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/connection-owner-isolation.test.ts:83:13
[cloud] cloud/connection-owner-isolation.test.ts > Connections · a user-owned connection is private to its creator, even inside the same org: e2e/cloud/connection-owner-isolation.test.ts#L83
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/connection-owner-isolation.test.ts:83:13
E2E (cloud 15of16)
Process completed with exit code 1.
[cloud] scenarios/openapi-add-integration-action-bar.test.ts > OpenAPI · Add integration commits the integration and the action bar is a single node: e2e/scenarios/openapi-add-integration-action-bar.test.ts#L65
TimeoutError: page.waitForURL: Timeout 30000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ ❯ scenarios/openapi-add-integration-action-bar.test.ts:65:24 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/openapi-add-integration-action-bar.test.ts:55:9 ❯ src/surfaces/browser.ts:288: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: page.waitForURL: Timeout 30000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ ❯ scenarios/mcp-catalog-sync-ui.test.ts:48:22 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/mcp-catalog-sync-ui.test.ts:46:9 ❯ src/surfaces/browser.ts:288:13
[cloud] cloud/billing-trial-checkout-stale.test.ts > Billing · completing the trial checkout shows the new plan without a reload: e2e/cloud/billing-trial-checkout-stale.test.ts#L61
TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for getByRole('heading', { name: 'Choose a plan' }) to be visible ❯ cloud/billing-trial-checkout-stale.test.ts:61:68 ❯ step src/surfaces/browser.ts:276:15 ❯ cloud/billing-trial-checkout-stale.test.ts:45:7 ❯ src/surfaces/browser.ts:288:13
E2E (cloud 8of16)
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#L139
TimeoutError: page.waitForURL: Timeout 120000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ ❯ scenarios/google-disabled-api.test.ts:139:18 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/google-disabled-api.test.ts:134:5 ❯ src/surfaces/browser.ts:288:13
[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#L196
AssertionError: addSpec succeeded: {"ok":false,"error":{"code":"org_write_denied","message":"Adding connections or changing workspace settings requires a workspace admin."}}: expected false to be true // Object.is equality - Expected + Received - true + false ❯ Array.<anonymous> scenarios/connect-handoff.test.ts:196:69 ❯ next ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/core.ts:531:30 ❯ FiberImpl.runLoop ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14 ❯ resume ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:972:13
[cloud] cloud/integration-creation-permissions.test.ts > Integration creation · cloud members see admin guidance and admins can add: e2e/cloud/support/session.ts#L84
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/support/session.ts:84: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/support/session.ts#L84
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/support/session.ts:84:13
E2E (cloud 5of16)
Process completed with exit code 1.
[cloud] scenarios/integrations-catalog-search.test.ts > Add page: a registry row adds in place, and falls back to the config screen: e2e/scenarios/integrations-catalog-search.test.ts#L84
TimeoutError: locator.waitFor: Timeout 90000ms exceeded. Call log: - waiting for getByTestId('catalog-todoist-fab11c').getByRole('link', { name: 'View Todoist MCP' }) to be visible ❯ scenarios/integrations-catalog-search.test.ts:84:14 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/integrations-catalog-search.test.ts:73:9 ❯ src/surfaces/browser.ts:288:13
E2E (cloud 12of16)
Process completed with exit code 1.
[cloud] scenarios/google-photos-preset-ui.test.ts > Google Photos products are separate registry cards with separate add flows: e2e/src/scenario.ts#L138
Error: Test timed out in 120000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ scenario src/scenario.ts:138:3 ❯ scenarios/google-photos-preset-ui.test.ts:13:1
[cloud] cloud/admin-users.test.ts > Admin · the owner sees every member of the workspace and what each has connected: e2e/cloud/support/session.ts#L84
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/support/session.ts:84: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#L130
AssertionError: addSpec succeeded: {"ok":false,"error":{"code":"org_write_denied","message":"Adding connections or changing workspace settings requires a workspace admin."}}: expected false to be true // Object.is equality - Expected + Received - true + false ❯ Array.<anonymous> scenarios/connect-handoff-session.test.ts:130:77 ❯ next ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1276:25 ❯ Object.~effect/Effect/evaluate ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/core.ts:531:30 ❯ FiberImpl.runLoop ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:633:39 ❯ runLoop ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:593:22 ❯ evaluate ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:1030:14 ❯ resume ../node_modules/.bun/effect@4.0.0-beta.59/node_modules/effect/src/internal/effect.ts:972: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#L64
TimeoutError: page.waitForURL: Timeout 30000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ ❯ scenarios/auth-methods-ui.test.ts:64:22 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/auth-methods-ui.test.ts:61:9 ❯ src/surfaces/browser.ts:288:13
[cloud] cloud/spec-update-convergence.test.ts > Convergence · a spec refresh reaches a co-worker's own connection on their next read: e2e/cloud/spec-update-convergence.test.ts#L126
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/spec-update-convergence.test.ts:126:13
[cloud] cloud/org-api-keys-console.test.ts > Admin · organization keys are minted in the console and authenticate the admin API: e2e/cloud/support/session.ts#L84
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/support/session.ts:84:13
[cloud] cloud/mcp-workspace-write-permissions.test.ts > MCP workspace writes · a member session is denied while an admin session succeeds: e2e/cloud/support/session.ts#L84
Error: /api/account/members/invite failed (403): {"_tag":"AccountForbidden","message":"Verify your identity to use organization admin settings."} ❯ cloud/support/session.ts:84:13
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/scenarios/google-health-checks.test.ts#L104
TimeoutError: page.waitForURL: Timeout 120000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ ❯ scenarios/google-health-checks.test.ts:104:18 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/google-health-checks.test.ts:98: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/scenarios/google-health-checks.test.ts#L104
TimeoutError: page.waitForURL: Timeout 120000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ ❯ scenarios/google-health-checks.test.ts:104:18 ❯ step src/surfaces/browser.ts:276:15 ❯ scenarios/google-health-checks.test.ts:98:5 ❯ src/surfaces/browser.ts:288:13
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/
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)
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 (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/
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.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.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)
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 (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 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, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
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)
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 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 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 (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 (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 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 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 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. 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 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, 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. 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/
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 (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 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 (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. 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, 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 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, 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 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 (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, 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 (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/