Skip to content

[QA] Flaky web e2e tests #1733

@saw-jan

Description

@saw-jan

1. app-provider-onlyOffice/officeSuites.feature:17

content check failure - file lock issue

Builds:

Tracings:

npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/web/330/create-a-microsoft-word-file-with-only-office-alice-2025-12-10-12-17-18.zip

npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/web/330/create-a-microsoft-word-file-with-only-office-anonymous-2025-12-10-12-17-44.zip
Scenario: create a Microsoft Word file with OnlyOffice
  ...
  Then "Anonymous" should see the content "Microsoft Word Content" in editor "OnlyOffice"
    ✖ failed
      Error: Failed to read non-empty clipboard content after retries
          at tryCopyClipboard (file:///woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/resource/actions.ts:376:11)
          at async Module.openAndGetContentOfDocument (file:///woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/resource/actions.ts:362:12)
          at async Public.getContentOfOpenDocumentOrMicrosoftWordDocument (file:///woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/page/public.ts:61:16)
          at async World.<anonymous> (file:///woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/public.ts:60:31)
update share failure

Builds:

Scenario: create a Microsoft Word file with OnlyOffice
  ...
  When "Alice" updates following sharee role
      │ resource           │ recipient │ type │ role     │ resourceType │
      │ MicrosoftWord.docx │ Brian     │ user │ Can edit │ file         │
    ✖ failed
      page.waitForResponse: Timeout 30000ms exceeded while waiting for event "response"
          at Module.changeShareeRole (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/actions.ts:117:18)
          at async Share.changeShareeRole (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/index.ts:24:9)
          at async World.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/shares.ts:62:9)

2. smoke/activity.feature:12

login failure

Builds:

npx playwright show-trace https://s3.ci.opencloud.eu//public/web/tracing/web/331/activity-alice-2025-12-10-12-51-59.zip
npx playwright show-trace https://s3.ci.opencloud.eu//public/web/tracing/web/331/activity-anonymous-2025-12-10-12-51-51.zip
npx playwright show-trace https://s3.ci.opencloud.eu//public/web/tracing/web/331/activity-brian-2025-12-10-12-52-20.zip
# Freq: 2
Scenario: activity
   ...
   ✔ And "Alice" logs out # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/session.ts:40
   ✖ When "Brian" logs in # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/session.ts:32
       page.waitForResponse: Timeout 30000ms exceeded while waiting for event "response"
           at Session.login (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/runtime/session.ts:30:24)
           at World.LogInUser (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/session.ts:19:25)
activities check failure

Builds:

Scenario: activity
   ...
   ✖ And "Brian" should see activities of the space mathing the following regex # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/spaces.ts:178
       | activity                                           |
       | Alice Hansen added Brian-\\w{3,} as member of team |
       locator.waitFor: Timeout 30000ms exceeded.
       Call log:
         - waiting for locator('#sidebar-panel-activities') to be visible
           64 × locator resolved to hidden <div inert="" data-v-95cca0d0="" id="sidebar-panel-activities" data-testid="sidebar-panel-activities" class="sidebar-panel absolute top-0 grid grid-rows-[auto_auto_1fr] bg-role-surface rounded-r-xl w-full size-full max-w-full max-h-full overflow-hidden motion-reduce:transition-none"></div>
       
           at Module.openPanel (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/utils/sidebar.ts:47:34)
           at async openActivitiesPanel (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/spaces/actions.ts:38:5)
           at async Module.checkSpaceActivity (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/spaces/actions.ts:240:5)
           at async Spaces.checkSpaceActivity (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/spaces/index.ts:78:9)
           at async World.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/spaces.ts:182:9)
   ✖ Then "Alice" should see activity of the following resource # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/resources.ts:632
       | resource             | activity                                         |
    locator.click: Timeout 30000ms exceeded.
       Call log:
         - waiting for locator('//button[\n  @data-test-context-menu-resource-name="new.txt" and\n  (contains(@class, "resource-tiles-btn-action-dropdown") or\n   contains(@class, "resource-table-btn-action-dropdown"))\n]')
       
           at openForResource (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/utils/sidebar.ts:14:68)
           at Module.open (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/utils/sidebar.ts:28:22)
           at async Module.checkActivity (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/resource/actions.ts:1422:5)
           at async Resource.checkActivity (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/resource/index.ts:262:9)
           at async World.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/resources.ts:636:9)

3. smoke/sse.feature

smoke/sse.feature:131 (login failure)

Builds:

Scenario: share sse events (attempt 1, retried) # tests/e2e/cucumber/features/smoke/sse.feature:131
   ✔ Before # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/environment/index.ts:23
   ✔ Given "Admin" creates following user using API # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/api.ts:4
       | id    |
       | Alice |
       | Brian |
       | Carol |
   ✖ When "Brian" logs in # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/session.ts:32
       page.waitForResponse: Timeout 30000ms exceeded while waiting for event "response"
           at Session.login (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/runtime/session.ts:30:24)
           at World.LogInUser (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/session.ts:19:25)
smoke/sse.feature:168 (resource check failure)

Builds:

Scenario: sse events on file operations
...
   ✖ And following resources should be displayed in the files list for user "Alice" # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/resources.ts:233
       | resource           |
       | simple-renamed.pdf |
       Error: expect(received).toBe(expected) // Object.is equality
       
       Expected: true
       Received: false
           at Proxy.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/node_modules/.pnpm/playwright@1.57.0/node_modules/playwright/lib/matchers/expect.js:224:24)
           at World.<anonymous> (file:///woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/resources.ts:240:52)

4. ocm/ocm.feature:7 (🔥) [FIXED]

create share failure [FIXED]

Builds:

npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/web/1252/user-creates-a-federated-share-alice-2026-1-21-12-23-39.zip
npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/web/1252/user-creates-a-federated-share-brian-2026-1-21-12-23-45.zip
  @ocm
  Scenario: user creates a federated share # tests/e2e/cucumber/features/ocm/ocm.feature:7
  ...
    And "Alice" shares the following resource using the sidebar panel
      │ resource       │ recipient │ type │ role     │ resourceType │ shareType │
      │ folderPublic   │ Brian     │ user │ Can edit │ folder       │ external  │
      │ sampleGif.gif  │ Brian     │ user │ Can edit │ file         │ external  │
      │ testavatar.jpg │ Brian     │ user │ Can view │ file         │ external  │
    ✖ failed
      locator.click: Timeout 30000ms exceeded.
      Call log:
        - waiting for locator('.invite-form-share-role-type-item').filter({ hasText: 'external' })

          at Module.createShare (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/actions.ts:66:82)
          at async Share.create (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/index.ts:10:9)
          at async World.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/shares.ts:43:9)
    And "Alice" shares the following resource using the sidebar panel
      │ resource       │ recipient │ type │ role     │ resourceType │ shareType │
      │ folderPublic   │ Brian     │ user │ Can edit │ folder       │ external  │
      │ sampleGif.gif  │ Brian     │ user │ Can edit │ file         │ external  │
      │ testavatar.jpg │ Brian     │ user │ Can view │ file         │ external  │
    ✖ failed
      Error: function timed out, ensure the promise resolves within 120000 milliseconds
          at Timeout.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/node_modules/.pnpm/@cucumber+cucumber@12.5.0/node_modules/@cucumber/cucumber/lib/time.js:64:20)
          at listOnTimeout (node:internal/timers:605:17)
          at process.processTimers (node:internal/timers:541:7)

5. smoke/uploadResumable.feature:6 (🔥) [FIXED]

large file upload failure [FIXED]

Builds:

npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/web/1225/upload-large-resources-in-personal-space-alice-2026-1-20-12-34-12.zip
  Scenario: Upload large resources in personal space # tests/e2e/cucumber/features/smoke/uploadResumable.feature:6
  ...
    And "Alice" resumes the file upload
    ✖ failed
      Error: function timed out, ensure the promise resolves within 120000 milliseconds
          at Timeout.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/node_modules/.pnpm/@cucumber+cucumber@12.5.0/node_modules/@cucumber/cucumber/lib/time.js:64:20)
          at listOnTimeout (node:internal/timers:605:17)
          at process.processTimers (node:internal/timers:541:7)

6. smoke/trashbinDelete.feature (🔥) [FIXED]

smoke/trashbinDelete.feature:97 (trashbin resource check failure) [FIXED]

Builds:

npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/web/1208/empty-trashbin-using-quick-action-alice-2026-1-19-02-56-53.zip
npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/web/1208/empty-trashbin-using-quick-action-brian-2026-1-19-02-56-57.zip
  Scenario: empty trashbin using quick action # tests/e2e/cucumber/features/smoke/trashbinDelete.feature:97
    Then following resources should not be displayed in the trashbin for user "Brian"
      │ resource │
      │ sales    │
    ✖ failed
      Error: expect(received).toBe(expected) // Object.is equality
      Expected: false
      Received: true
          at Proxy.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/node_modules/.pnpm/playwright@1.57.0/node_modules/playwright/lib/matchers/expect.js:224:24)
          at World.<anonymous> (file:///woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/resources.ts:240:52)
    Then following resources should not be displayed in the trashbin for user "Brian"
      │ resource │
      │ sales    │
    ✖ failed
      locator.getAttribute: Timeout 30000ms exceeded.
      Call log:
        - waiting for locator('[data-test-resource-path]').first()

          at Module.getDisplayedResourcesFromTrashbin (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/resource/actions.ts:1095:40)
          at async World.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/resources.ts:236:24)
smoke/trashbinDelete.feature:46 (create share failure) [FIXED]

Builds:

Scenario: delete and restore a file inside a received shared folder
  ✖ And "Alice" shares the following resource using the sidebar panel # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/shares.ts:24
       | resource      | recipient | type | role     | resourceType |
       | folderToShare | Brian     | user | Can edit | folder       |
       locator.click: Timeout 30000ms exceeded.
       Call log:
         - waiting for locator('.oc-files-actions-show-details-trigger')
       
           at openForResource (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/utils/sidebar.ts:15:66)
           at async Module.open (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/utils/sidebar.ts:28:16)
           at async openSharingPanel (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/actions.ts:36:13)
           at async Module.createShare (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/actions.ts:49:9)
           at async Share.create (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/index.ts:10:9)
           at async World.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/shares.ts:43:9)

7. journeys/kindergarten.feature:21

update share failure

Builds:

npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/web/1206/alice-can-share-this-weeks-meal-plan-with-all-parents-alice-2026-1-19-02-49-22.zip
  Scenario: Alice can share this weeks meal plan with all parents # tests/e2e/cucumber/features/journeys/kindergarten.feature:21
    And "Alice" updates following sharee role
      │ resource                                           │ recipient │ type  │ role     │ resourceType │
    ✖ failed
      page.waitForResponse: Timeout 30000ms exceeded while waiting for event "response"
          at Module.changeShareeRole (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/actions.ts:117:18)
          at async Share.changeShareeRole (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/support/objects/app-files/share/index.ts:24:9)
          at async World.<anonymous> (/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/shares.ts:62:9)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions