You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The os.Rename() system call only works within the same filesystem. When you try to rename/move a file across different filesystems, it fails with the error invalid cross-device link (EXDEV).
Why This Happens with Your Docker Setup
In your docker-compose.yml:
Pictures directory (/srv/var/pictures) → mounted to /var/lib/remark42/pictures (external volume/filesystem)
Staging directory (/srv/var/pictures.staging) → NOT mounted, stays on container's internal filesystem
When Remark42 tries to commit an image, it attempts to rename from:
Activity
tigerInLuck commentedon Oct 13, 2025
It's OK:
umputun commentedon Oct 13, 2025
The issue is caused by a filesystem boundary problem with the Docker volume mounting configuration.
Looking at backend/app/store/image/fs_store.go:63, the code uses os.Rename() to move images from staging to permanent storage:
The
os.Rename()system call only works within the same filesystem. When you try to rename/move a file across different filesystems, it fails with the error invalid cross-device link (EXDEV).Why This Happens with Your Docker Setup
In your docker-compose.yml:
When Remark42 tries to commit an image, it attempts to rename from:
These are two different filesystems, so os.Rename() fails.
Quick fix for you - Mount the staging directory as a volume too
moved to discussion, because this is not really a bug report