Skip to content

feat(core): Introduce database mode for binary data storage #46038

feat(core): Introduce database mode for binary data storage

feat(core): Introduce database mode for binary data storage #46038

Triggered via pull request November 24, 2025 18:01
Status Success
Total duration 25m 33s
Artifacts

ci-pull-requests.yml

on: pull_request
Install & Build
3m 12s
Install & Build
Matrix: Unit tests / unit-test-frontend
Unit tests  /  Backend Unit Tests
6m 13s
Unit tests / Backend Unit Tests
Unit tests  /  Backend Integration Tests
4m 57s
Unit tests / Backend Integration Tests
Unit tests  /  Nodes Unit Tests
6m 59s
Unit tests / Nodes Unit Tests
Bundle Size Check
0s
Bundle Size Check
Unit tests  /  Unit tests
2s
Unit tests / Unit tests
Matrix: E2E Tests / test
E2E - Checks
2s
E2E - Checks
Fit to window
Zoom out
Zoom in

Annotations

7 errors, 1 warning, and 8 notices
[ui] › tests/ui/7-workflow-actions.spec.ts:344:6 › Workflow Actions › should archive active workflow and then delete it: packages/testing/playwright/tests/ui/7-workflow-actions.spec.ts#L354
1) [ui] › tests/ui/7-workflow-actions.spec.ts:344:6 › Workflow Actions › should archive active workflow and then delete it TimeoutError: locator.click: Timeout 20000ms exceeded. Call log: - waiting for getByTestId('workflow-menu') - locator resolved to <div data-v-c8d5a669="" data-test-id="workflow-menu" class="action-dropdown-container">…</div> - attempting click action 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <div role="dialog" aria-modal="true" class="el-overlay-dialog" aria-labelledby="el-id-3684-160" aria-describedby="el-id-3684-161">…</div> from <div id="app-modals" class="_modals_jj6dn_188">…</div> subtree intercepts pointer events - retrying click action - waiting 20ms 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <div role="dialog" aria-modal="true" class="el-overlay-dialog" aria-labelledby="el-id-3684-160" aria-describedby="el-id-3684-161">…</div> from <div id="app-modals" class="_modals_jj6dn_188">…</div> subtree intercepts pointer events - retrying click action - waiting 100ms 38 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <div role="dialog" aria-modal="true" class="el-overlay-dialog" aria-labelledby="el-id-3684-160" aria-describedby="el-id-3684-161">…</div> from <div id="app-modals" class="_modals_jj6dn_188">…</div> subtree intercepts pointer events - retrying click action - waiting 500ms 352 | 353 | await expect(n8n.workflowSettingsModal.getWorkflowMenu()).toBeVisible(); > 354 | await n8n.workflowSettingsModal.getWorkflowMenu().click(); | ^ 355 | await n8n.workflowSettingsModal.clickArchiveMenuItem(); 356 | await n8n.workflowSettingsModal.confirmArchiveModal(); 357 | at /home/runner/_work/n8n/n8n/packages/testing/playwright/tests/ui/7-workflow-actions.spec.ts:354:53
[ui] › tests/ui/17-workflow-tags.spec.ts:6:6 › Workflow tags - Tag creation › should create and attach tags inline: packages/testing/playwright/tests/ui/17-workflow-tags.spec.ts#L29
1) [ui] › tests/ui/17-workflow-tags.spec.ts:6:6 › Workflow tags - Tag creation › should create and attach tags inline, then add more incrementally Error: expect(locator).toHaveCount(expected) failed Locator: getByTestId('workflow-tags-container').locator('.el-tag:not(.count-container)') Expected: 3 Received: 0 Timeout: 10000ms Call log: - Expect "toHaveCount" with timeout 10000ms - waiting for getByTestId('workflow-tags-container').locator('.el-tag:not(.count-container)') 14 × locator resolved to 0 elements - unexpected value "0" 27 | await n8n.canvas.clickOutsideModal(); 28 | > 29 | await expect(n8n.canvas.getTagPills()).toHaveCount(3); | ^ 30 | 31 | // Pills should be rendered individually, not collapsed as "+3" 32 | const tagsContainer = n8n.page.getByTestId('workflow-tags-container'); at /home/runner/_work/n8n/n8n/packages/testing/playwright/tests/ui/17-workflow-tags.spec.ts:29:42
[ui] › tests/ui/5-ndv.spec.ts:649:7 › NDV › Node Creator Integration › Should open appropriate node creator after clicking on connection hint link: packages/testing/playwright/pages/CanvasPage.ts#L196
1) [ui] › tests/ui/5-ndv.spec.ts:649:7 › NDV › Node Creator Integration › Should open appropriate node creator after clicking on connection hint link TimeoutError: locator.dblclick: Timeout 20000ms exceeded. Call log: - waiting for locator('[data-test-id="canvas-node"][data-node-name="Vector Store"]') - locator resolved to <div data-v-726dbe6e="" data-test-id="canvas-node" class="_canvasNode_1k8iq_123" data-node-name="Vector Store" data-node-type="@n8n/n8n-nodes-langchain.vectorStoreSupabase">…</div> - attempting dblclick action 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <div draggable="true" data-v-f6e3257f="" data-test-id="node-creator-node-item" class="_creatorNode_b7tre_123 _hasAction_b7tre_130 _nodeItem_4xp4b_123 _nodeItem_4xp4b_123">…</div> from <div>…</div> subtree intercepts pointer events - retrying dblclick action - waiting 20ms 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <div draggable="true" data-v-f6e3257f="" data-test-id="node-creator-node-item" class="_creatorNode_b7tre_123 _hasAction_b7tre_130 _nodeItem_4xp4b_123 _nodeItem_4xp4b_123">…</div> from <div>…</div> subtree intercepts pointer events - retrying dblclick action - waiting 100ms 38 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <div draggable="true" data-v-f6e3257f="" data-test-id="node-creator-node-item" class="_creatorNode_b7tre_123 _hasAction_b7tre_130 _nodeItem_4xp4b_123 _nodeItem_4xp4b_123">…</div> from <div>…</div> subtree intercepts pointer events - retrying dblclick action - waiting 500ms at pages/CanvasPage.ts:196 194 | 195 | async openNode(nodeName: string): Promise<void> { > 196 | await this.nodeByName(nodeName).dblclick(); | ^ 197 | } 198 | 199 | getRenamePrompt(): Locator { at CanvasPage.openNode (/home/runner/_work/n8n/n8n/packages/testing/playwright/pages/CanvasPage.ts:196:35) at /home/runner/_work/n8n/n8n/packages/testing/playwright/tests/ui/5-ndv.spec.ts:667:22
[ui] › tests/ui/12-canvas.spec.ts:29:6 › Canvas Node Manipulation and Navigation › should add switch node and test connections: packages/testing/playwright/tests/ui/12-canvas.spec.ts#L63
1) [ui] › tests/ui/12-canvas.spec.ts:29:6 › Canvas Node Manipulation and Navigation › should add switch node and test connections Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeAttached() failed Locator: locator('[data-test-id="edge"][data-source-node-name="Edit Fields3"][data-target-node-name="Switch1"]') Expected: attached Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeAttached" with timeout 10000ms - waiting for locator('[data-test-id="edge"][data-source-node-name="Edit Fields3"][data-target-node-name="Switch1"]') 61 | await expect( 62 | n8n.canvas.connectionBetweenNodes('Edit Fields3', `${SWITCH_NODE_NAME}1`), > 63 | ).toBeAttached(); | ^ 64 | 65 | const editFieldsNodes = ['Edit Fields', 'Edit Fields1', 'Edit Fields2', 'Edit Fields3']; 66 | for (const nodeName of editFieldsNodes) { at /home/runner/_work/n8n/n8n/packages/testing/playwright/tests/ui/12-canvas.spec.ts:63:5
[ui] › tests/ui/12-canvas.spec.ts:29:6 › Canvas Node Manipulation and Navigation › should add switch node and test connections: packages/testing/playwright/tests/ui/12-canvas.spec.ts#L63
1) [ui] › tests/ui/12-canvas.spec.ts:29:6 › Canvas Node Manipulation and Navigation › should add switch node and test connections Error: expect(locator).toBeAttached() failed Locator: locator('[data-test-id="edge"][data-source-node-name="Edit Fields3"][data-target-node-name="Switch1"]') Expected: attached Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeAttached" with timeout 10000ms - waiting for locator('[data-test-id="edge"][data-source-node-name="Edit Fields3"][data-target-node-name="Switch1"]') 61 | await expect( 62 | n8n.canvas.connectionBetweenNodes('Edit Fields3', `${SWITCH_NODE_NAME}1`), > 63 | ).toBeAttached(); | ^ 64 | 65 | const editFieldsNodes = ['Edit Fields', 'Edit Fields1', 'Edit Fields2', 'Edit Fields3']; 66 | for (const nodeName of editFieldsNodes) { at /home/runner/_work/n8n/n8n/packages/testing/playwright/tests/ui/12-canvas.spec.ts:63:5
[ui:isolated] › tests/ui/39-projects.spec.ts:313:7 › Projects › when moving resources between projects @db:reset › should move the workflow to expected projects @auth:owner: packages/testing/playwright/composables/WorkflowComposer.ts#L215
2) [ui:isolated] › tests/ui/39-projects.spec.ts:313:7 › Projects › when moving resources between projects @db:reset › should move the workflow to expected projects @auth:owner TimeoutError: locator.waitFor: Timeout 20000ms exceeded. Call log: - waiting for getByTestId('project-sharing-info').getByText('[email protected]').first() to be visible 45 × locator resolved to hidden <small>[email protected]</small> at composables/WorkflowComposer.ts:215 213 | .getByText(projectNameOrEmail) 214 | .first(); > 215 | await projectOption.waitFor({ state: 'visible' }); | ^ 216 | await projectOption.click(); 217 | } 218 | at WorkflowComposer.selectProjectInMoveModal (/home/runner/_work/n8n/n8n/packages/testing/playwright/composables/WorkflowComposer.ts:215:23) at WorkflowComposer.moveToProject (/home/runner/_work/n8n/n8n/packages/testing/playwright/composables/WorkflowComposer.ts:191:3) at /home/runner/_work/n8n/n8n/packages/testing/playwright/tests/ui/39-projects.spec.ts:330:4
[ui:isolated] › tests/ui/17-sharing.spec.ts:319:7 › @isolated › Credential Usage in Cross Shared Workflows › should only show credentials from the same team project: packages/testing/playwright/tests/ui/17-sharing.spec.ts#L346
1) [ui:isolated] › tests/ui/17-sharing.spec.ts:319:7 › @isolated › Credential Usage in Cross Shared Workflows › should only show credentials from the same team project Error: expect(locator).toHaveCount(expected) failed Locator: locator('.el-popper:visible').locator('li') Expected: 1 Received: 2 Timeout: 10000ms Call log: - Expect "toHaveCount" with timeout 10000ms - waiting for locator('.el-popper:visible').locator('li') 2 × locator resolved to 0 elements - unexpected value "0" 12 × locator resolved to 2 elements - unexpected value "2" 344 | // Only Test project credential visible 345 | await n8n.ndv.getNodeCredentialsSelect().click(); > 346 | await expect(n8n.ndv.getVisiblePopper().locator('li')).toHaveCount(1); | ^ 347 | }); 348 | 349 | test('should only show credentials in their personal project for members', async ({ n8n }) => { at /home/runner/_work/n8n/n8n/packages/testing/playwright/tests/ui/17-sharing.spec.ts:346:59
Lint / Lint
Unexpected 400 error: Unknown error
🎭 Playwright Run Summary
1 flaky [ui] › tests/ui/7-workflow-actions.spec.ts:344:6 › Workflow Actions › should archive active workflow and then delete it 1 skipped 73 passed (5.2m)
🎭 Playwright Run Summary
1 flaky [ui] › tests/ui/17-workflow-tags.spec.ts:6:6 › Workflow tags - Tag creation › should create and attach tags inline, then add more incrementally 5 skipped 69 passed (5.6m)
🎭 Playwright Run Summary
1 skipped 74 passed (5.6m)
🎭 Playwright Run Summary
75 passed (6.6m)
🎭 Playwright Run Summary
1 flaky [ui] › tests/ui/5-ndv.spec.ts:649:7 › NDV › Node Creator Integration › Should open appropriate node creator after clicking on connection hint link 1 skipped 73 passed (6.7m)
🎭 Playwright Run Summary
2 skipped 73 passed (6.9m)
🎭 Playwright Run Summary
1 flaky [ui] › tests/ui/12-canvas.spec.ts:29:6 › Canvas Node Manipulation and Navigation › should add switch node and test connections 2 skipped 72 passed (7.4m)
🎭 Playwright Run Summary
2 flaky [ui:isolated] › tests/ui/17-sharing.spec.ts:319:7 › @isolated › Credential Usage in Cross Shared Workflows › should only show credentials from the same team project [ui:isolated] › tests/ui/39-projects.spec.ts:313:7 › Projects › when moving resources between projects @db:reset › should move the workflow to expected projects @auth:owner 73 passed (13.5m)