Hi, after upgrade to Nextcloud Hub 25 Autumn (32.0.13) Move - Copy button has disappeared, when selected multiple files.
Tried several browsers, but seems to be NextCloud related.
Operating system: Linux 5.15.0-185-generic #195-Ubuntu SMP Fri Jun 19 17:11:50 UTC 2026 x86_64
Webserver: Apache/2.4.52 (Ubuntu) (apache2handler)
Database: mysql 10.6.23
PHP version: 8.3.31
Is this behavior known software defect or where I might look to identify rootcause for this issue?
Thank you.
ernolf
July 31, 2026, 9:24pm
2
Hi @MartinO
This is a known issue. It was a regression in the “Nextcloud Office” app (richdocuments) and has already been fixed:
opened 09:47PM - 27 Jul 26 UTC
closed 07:12PM - 28 Jul 26 UTC
bug
regression
**Describe the bug**
Since updating the app to **9.2.0**, the multi-select acti… on bar in the Files app is broken on **Nextcloud 32**. Selecting several files and trying a bulk action (Copy, Move, Delete, …) no longer works — the batch actions do not run. Acting on a single file still works.
The reason is a file action registered by richdocuments whose `enabled()` callback throws under Nextcloud 32.
The Files app builds the multi-select action bar by evaluating `enabled()` of **every** registered file action (`FilesListTableHeaderActions.vue`, computed `enabledFileActions`). That filter has no per-action `try/catch`, so a single throwing `enabled()` takes down the whole batch bar. The single-row path (`FileEntryMixin.ts`) does catch per action, which is why single-file actions still work.
The throwing action is `office-open-markdown` in `src/file-actions.js`:
```js
enabled: ({ nodes }) => {
if (nodes.length !== 1) { // file-actions.js:70 → nodes is undefined on NC 32
```
`enabled()` destructures `nodes` from a **context object** — that is the Nextcloud **33+** file-actions API. On **Nextcloud 32** the callback still receives the **node array** directly, so `nodes` is `undefined` and `nodes.length` throws.
The same file proves the inconsistency: the older `office-open-pdf` action in the same file uses the NC 32 array API and works fine:
```js
enabled: (files) => {
if (files.length !== 1) { ... } // array API → OK on NC 32
```
So the NC-33 API code was shipped to NC 32 without being adapted.
**To Reproduce**
Steps to reproduce the behavior:
1. On a Nextcloud 32 instance with richdocuments 9.2.0, open the Files app.
2. Tick the checkboxes of two or more files.
3. Try any bulk action from the top action bar (e.g. Move or copy).
4. Nothing happens; the browser console shows `TypeError: Cannot read properties of undefined (reading 'length') at Object.enabled (file-actions.js:70)`.
**Expected behavior**
Bulk actions on multiple selected files work as before 9.2.0. The richdocuments file action must not throw on Nextcloud 32.
**Screenshots**
n/a
**Client details:**
- OS: Linux (desktop)
- Browser: Chromium / Firefox (any)
- Device: desktop
## Server details
**Operating system**: Ubuntu
**Web server:** Apache/2.4.68
**Database:** MySQL / MariaDB
**PHP version:** 8.4.23
**Nextcloud version:** 32.0.13.1
**Version of the richdocuments app**: 9.2.0
**Version of Collabora Online**: not relevant — this is a frontend-only JavaScript API mismatch, independent of the COOL server version.
**Configuration of the richdocuments app**
```
(available on request — not relevant to this frontend bug)
```
<details>
<summary>Logs</summary>
#### Browser log
```
FileEntryMixin.ts:211 [ERROR] files: Error while checking action
error: TypeError: Cannot read properties of undefined (reading 'length')
at Object.enabled
selection.ts:15 Uncaught TypeError: Cannot read properties of undefined (reading 'length')
at Object.enabled (file-actions.js:70:13)
at FilesListTableHeaderActions.vue:74:61
at Array.filter (<anonymous>)
at o.enabledFileActions (FilesListTableHeaderActions.vue:74:18)
```
</details>
---
## Where the mistake was made
The `office-open-markdown` action was added on `main` (for NC 33+) in PR #5873 and then **backported to `stable32`** in PR #5918, shipped as **9.2.0**. The `enabled: ({ nodes })` context-object signature is correct for NC 33+, but on the `stable32` branch it needed the NC 32 array signature (as `office-open-pdf` in the same file already uses). The backport carried the NC-33 API onto NC 32 unchanged.
- Introduced: PR #5873 (main), commit `7ec1f6c6`, 2026-07-17
- Backported: PR #5918 (`[stable32]`), commit `86ef4507`, merged 2026-07-24 → **first affected release: richdocuments 9.2.0**
- 9.1.1 did not have this action, which is why bulk actions worked before.
Confirmed by isolation: disabling the `tables` app (which also ships a `file-actions.js`) changed nothing; disabling `richdocuments` restored bulk actions immediately.
I’m also waiting for the new version with the fix to be released.
If you need bulk processing, you will need to (temporarily) disable “Nextcloud Office” (richdocuments) or switch to an older version until the fixed regression version is released.
And please fill out the full support template next time. As you can see, it is important to know exactly all the activated apps. In this case, I was the one who discovered the regression first, so I knew the details, but that’s not always the case.
h.t.h.
ernolf