Nextcloud: Ordner lassen sich nicht löschen, Ursachen und Lösung

Kein Kommentar Autor: Jürgen (jdo)

Lässt Nextcloud Dich keine Ordner mehr löschen, kommen wenige Ursachen in Frage: eine hängende Dateisperre, eine App, die beim Löschen einen Fehler auslöst, falsche Rechte im Datenverzeichnis, ein veralteter Dateicache oder eine Freigabe ohne Löschrecht. Den entscheidenden Hinweis liefert das Nextcloud-Protokoll. Gehe am besten in dieser Reihenfolge vor:

  1. Im Protokoll die Fehlermeldung zum Löschversuch suchen.
  2. Steht dort „is locked“, hängende Dateisperren entfernen.
  3. Eine verdächtige App testweise deaktivieren.
  4. Besitzer des Datenverzeichnisses prüfen.
  5. Den Dateicache mit occ files:scan abgleichen.
  6. Bei Freigaben das Löschrecht prüfen.

Zuerst ins Protokoll schauen

Als Admin findest Du das Protokoll unter Administrationseinstellungen → Protokollierung. Die Ansicht liest die Datei nextcloud.log, die standardmäßig im Datenverzeichnis liegt. Den genauen Pfad zeigt Dir occ auf dem Server:

cd /var/www/nextcloud
sudo -E -u www-data php occ log:file

Den Pfad passt Du an Deine Installation an. Bei Nextcloud All-in-One (Docker) ersetzt Du sudo -E -u www-data php occ durch sudo docker exec –user www-data -it nextcloud-aio-nextcloud php occ. Lösche den Ordner dann im Browser und lies den neuen Eintrag. Meldungen wie „is locked“ oder der HTTP-Status 423 zeigen eine Dateisperre an. Ein TypeError oder eine andere Exception kann auf eine App deuten, vor allem wenn in den Details ein Pfad unter apps/ auftaucht.

Dateisperre hängt: „is locked“ oder Fehler 423

Nextcloud sperrt Dateien und ihre übergeordneten Ordner, solange ein Vorgang läuft. So können zwei Prozesse nicht gleichzeitig speichern. Bricht ein Vorgang ab, etwa weil der Sync-Client die Verbindung verliert, gibt Nextcloud die Sperre wieder frei. Bleibt trotzdem eine hängen, räumt Nextcloud sie nach Ablauf der Option filelocking.ttl auf, standardmäßig nach einer Stunde. Oft reicht es also, zu warten.

Ohne Redis oder Valkey liegen die Sperren in der Datenbank, in der Tabelle oc_file_locks. Datenbankname und Tabellenpräfix stehen in der config.php. Hängende Sperren entfernst Du in drei Schritten, vorher sicherst Du die Datenbank. Zuerst schaltest Du den Wartungsmodus ein:

sudo -E -u www-data php occ maintenance:mode --on

Dann leerst Du in der Nextcloud-Datenbank (MariaDB, MySQL oder PostgreSQL) die Sperrtabelle:

DELETE FROM oc_file_locks WHERE true;

Zum Schluss beendest Du den Wartungsmodus und liest die Dateien neu ein:

sudo -E -u www-data php occ maintenance:mode --off
sudo -E -u www-data php occ files:scan --all

Passiert das öfter, legst Du die Sperren in Redis oder Valkey ab (Option memcache.locking). Das entlastet die Datenbank, wie die Nextcloud-Dokumentation zum Transactional File Locking erklärt.

Davon zu unterscheiden sind gewollte Sperren der App Dateien temporär sperren (files_lock). Damit sperren Nutzer Dateien von Hand, und während einer Sitzung in Nextcloud Office oder Text sperrt die App sie automatisch. Manuelle Sperren laufen standardmäßig nicht ab. Ein Admin löst sie mit occ files:lock –unlock und der ID der Datei. Mehr dazu steht im Beitrag zum lokalen Bearbeiten und Sperren von Nextcloud-Office-Dokumenten.

Eine App stört beim Löschen: der Fall Nextcloud 27

Im Sommer 2023 trat das Problem hier kurz nach dem Upgrade auf Nextcloud 27 auf. Ein Temp-Ordner, in dem sich über Monate allerlei Kram gesammelt hatte, sollte aufgeräumt werden. Dateien ließen sich löschen, Ordner nicht. Ordner anlegen und umbenennen ging, nur löschen nicht mehr, im Desktop-Client genauso wie im Browser.

Ein Datei-Scan mit occ files:scan –all brachte nichts. Auch occ files:cleanup und occ files:repair-tree meldeten keine Fehler, die Berechtigungen sahen normal aus. Direkt per Kommandozeile auf dem Server ließen sich Ordner löschen, danach musste aber jedes Mal ein Datei-Scan laufen. Das Protokoll zeigte diese Fehlermeldung:

TypeError: OC\Files\Cache\QuerySearchHelper::getCachesAndMountPointsForSearch(): Argument #1 ($root) must be of type OC\Files\Node\Root, OC\Files\Node\LazyRoot given, called in /var/www/nextcloud/lib/private/Files/Node/Folder.php on line 238

TypeError im Nextcloud-Protokoll beim Löschen eines Ordners unter Nextcloud 27
Diese Meldung erschien unter Nextcloud 27 bei jedem Versuch, einen Ordner zu löschen (2023)

Über diesen Thread im Nextcloud-Forum fand sich die Lösung, denn viele hatten dasselbe Problem. Auslöser war die Musik-App. Nach ihrer Deaktivierung ließen sich Ordner wieder problemlos löschen.

Die eigentliche Ursache steckte allerdings in Nextcloud selbst: Beim Löschen klinkt sich die Musik-App ein, und dabei scheiterte eine Nextcloud-Funktion an einer zu engen Typvorgabe. Nextcloud hat den Fehler am 20. Juli 2023 mit den Versionen 25.0.9, 26.0.4 und 27.0.1 behoben. Seitdem musst Du die Musik-App deswegen nicht mehr abschalten.

Die Lehre gilt weiter: Nennt der Fehler eine App oder hast Du kurz vorher eine installiert, deaktiviere sie testweise. Das geht unter Apps → Aktive Apps oder per occ:

sudo -E -u www-data php occ app:list --enabled
sudo -E -u www-data php occ app:disable music

Statt music setzt Du die ID der verdächtigen App ein. Klappt das Löschen danach, aktualisierst Du App und Nextcloud und schaltest die App mit occ app:enable wieder ein.

Nextcloud 27 bekommt seit Juni 2024 keine Updates mehr. Von so alten Versionen aktualisierst Du Hauptversion für Hauptversion, überspringen lässt sich keine. Wer Updates nicht selbst pflegen will, findet Anbieter im Vergleich zum Nextcloud-Hosting in Deutschland.

Rechte im Datenverzeichnis prüfen

Nextcloud schreibt als Benutzer des Webservers ins Datenverzeichnis. Unter Debian und Ubuntu heißt er www-data, unter Fedora und RHEL apache. Nach einem Serverumzug, einem Restore oder wenn Du Dateien direkt ins Datenverzeichnis kopiert hast, gehören Dateien manchmal dem falschen Benutzer. Dann funktionieren neue Ordner, ältere lassen sich aber womöglich nicht löschen.

Den Pfad nennt die Zeile datadirectory der config.php. So setzt Du den Besitzer zurück und liest die Dateien neu ein:

sudo chown -R www-data:www-data /var/www/nextcloud/data
sudo -E -u www-data php occ files:scan --all

Bei Nextcloud All-in-One liegt das Datenverzeichnis im Container unter /mnt/ncdata. Die Projektdokumentation nennt dafür diese Befehle:

sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/
sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/
sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --all

Dateicache abgleichen

Nextcloud führt alle Dateien und Ordner in einem Dateicache in der Datenbank. Passen Cache und Speicher nicht zusammen, zeigt die Oberfläche Ordner, die so nicht mehr existieren, oder Aktionen darauf scheitern. Drei occ-Befehle helfen:

  • files:scan liest Dateien neu ein, mit –all für alle Nutzer. Für einen Ordner reicht –path=”/benutzer/files/Ordner”.
  • files:cleanup entfernt Cache-Einträge ohne passenden Speicher, etwa nach einer Migration.
  • files:repair-tree repariert Einträge, deren gespeicherter Pfad nicht zum übergeordneten Ordner passt.

Musst Du einen Ordner auf dem Server löschen, nimm occ files:delete statt rm. Der Befehl löscht über Nextcloud selbst und fragt vorher nach. Alle Befehle beschreibt die occ-Referenz für Dateien. Zeigt Nextcloud nach einem Update weitere Warnungen, hilft der Beitrag zu occ maintenance:repair und seinen Meldungen.

Freigaben, Papierkorb und Desktop-Client

Liegt der Ordner in einer Freigabe, bestimmt der Besitzer Deine Rechte zum Erstellen, Bearbeiten, Löschen und Weiterteilen. Fehlt das Löschrecht, bittest Du ihn, es zu setzen. Beim obersten Ordner einer Freigabe, die Du bekommen hast, heißt die Aktion Diese Freigabe verlassen. Damit entfernst Du nur Deinen Zugriff, die Dateien des Besitzers bleiben erhalten.

Gelöschte Ordner landen zunächst im Papierkorb unter Gelöschte Dateien. Dort stellst Du sie wieder her oder löschst sie endgültig. Standardmäßig bleiben sie 30 Tage, bei knappem Platz räumt Nextcloud die ältesten früher ab. Löscht jemand etwas in einem Ordner, den Du freigegeben hast, landet es in Deinem Papierkorb.

Scheitert das Löschen nur im Desktop-Client, teste es im Browser. Klappt es dort, liegt das Problem beim Client. Wie Du ihn einrichtest, zeigt der Beitrag zum Nextcloud-Client unter Linux Mint.

Aktualisiert am 18.10.2026 von Henry. Fakten geprüft.




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.