Read the signal
Start with the exact wording of the error and its timestamp in the log. Then narrow down the cause before changing anything.
OCP\Lock\LockedException: "files/9a3c1e7d/Dokumente/Bericht.docx" is locked, existing lock on file: exclusive
Narrow down possible causes
- File locking uses the database instead of Redis, and locks stay behind after aborts.
- An aborted upload or desktop client sync; the PHP process was killed by a timeout.
- The file is still open in Collabora or OnlyOffice.
- Background jobs do not run (no system cron), so expired locks are not cleaned up.
Check before changing anything
1.
Which locking backend is configured?
sudo -u www-data php /var/www/nextcloud/occ config:system:get memcache.locking
2.
Check that Redis is reachable
redis-cli ping
3.
Count locks in the database (with DB locking)
mysql -u nextcloud -p nextcloud -e 'SELECT COUNT(*) FROM oc_file_locks WHERE `lock` <> 0;'
4.
Check the background job mode
sudo -u www-data php /var/www/nextcloud/occ config:app:get core backgroundjobs_mode
Fix and test again
- Use Redis for locking:
'memcache.locking' => '\OC\Memcache\Redis'inconfig.php. - Switch background jobs to system cron:
*/5 * * * * php -f /var/www/nextcloud/cron.phpin www-data's crontab. - Clear stale DB locks: maintenance mode on,
DELETE FROM oc_file_locks WHERE 1;, maintenance mode off. - With Redis, locks expire via TTL; only flush the Redis database in an emergency, and only if Nextcloud is its sole user.
Then repeat the original action and compare the result with the initial error.
Keep a note for the next ticket
Record the exact error, the check result, the change and the retest. That gives the team a useful starting point next time.
Can I just disable file locking?
Technically yes (filelocking.enabled set to false), but you risk corrupted files on concurrent access. Use Redis instead.
Full error guide: Nextcloud: "file is locked" and HTTP 423 Locked
Originally published at daniele-michelin.com. More guides, free checks (SPF, TLS, headers) and an error-message lexicon: daniele-michelin.com/en/.
Top comments (0)