I
Immich3w ago
dub4u

Download in browser fails with 500 internal server error

Picture uploaded from Android app displays fine in the web interface. Downloading it however results in 500 internal server error:
[Nest] 31 - 11/04/2025, 8:58:51 AM ERROR [Api:LoggingRepository~izf6dqb5] Unable to send file: Error: EACCES: permission denied, access '/data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg'
Error: EACCES: permission denied, access '/data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg'
at async access (node:internal/fs/promises:606:10)
at async sendFile (/usr/src/app/server/dist/utils/file.js:49:9)
at async AssetMediaController.downloadAsset (/usr/src/app/server/dist/controllers/asset-media.controller.js:47:9)
[Nest] 31 - 11/04/2025, 8:58:51 AM ERROR [Api:LoggingRepository~izf6dqb5] Unable to send file: Error: EACCES: permission denied, access '/data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg'
Error: EACCES: permission denied, access '/data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg'
at async access (node:internal/fs/promises:606:10)
at async sendFile (/usr/src/app/server/dist/utils/file.js:49:9)
at async AssetMediaController.downloadAsset (/usr/src/app/server/dist/controllers/asset-media.controller.js:47:9)
Now this is where it gets weird. Attaching to the container this happens:
$ docker exec -it immich_server bash
root@b587f49360bd:/usr/src/app# ls -l /data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg
ls: cannot access '/data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg': Permission denied # <==== Initially denied
root@b587f49360bd:/usr/src/app# ls -l /data/library/admin/2025/2025-11-03/
total 53828
-rwxrwxrwx 1 1024 users 6809413 Nov 3 15:11 IMG_20251103_151156.jpg
root@b587f49360bd:/usr/src/app# ls -l /data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg
-rwxrwxrwx 1 1024 users 6809413 Nov 3 15:11 /data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg** # <==== no longer denied!!
root@b587f49360bd:/usr/src/app# mount | grep /data
home-server:/volume1/Library/Immich on /data type nfs (rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.8.112,mountvers=3,mountport=892,mountproto=udp,local_lock=none,addr=192.168.8.112)
$ docker exec -it immich_server bash
root@b587f49360bd:/usr/src/app# ls -l /data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg
ls: cannot access '/data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg': Permission denied # <==== Initially denied
root@b587f49360bd:/usr/src/app# ls -l /data/library/admin/2025/2025-11-03/
total 53828
-rwxrwxrwx 1 1024 users 6809413 Nov 3 15:11 IMG_20251103_151156.jpg
root@b587f49360bd:/usr/src/app# ls -l /data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg
-rwxrwxrwx 1 1024 users 6809413 Nov 3 15:11 /data/library/admin/2025/2025-11-03/IMG_20251103_151156.jpg** # <==== no longer denied!!
root@b587f49360bd:/usr/src/app# mount | grep /data
home-server:/volume1/Library/Immich on /data type nfs (rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.8.112,mountvers=3,mountport=892,mountproto=udp,local_lock=none,addr=192.168.8.112)
So initially ls yields Permission denied, but after getting a directory listing on the folder the file can be accessed! And it can now be download through the web browser interface! As you can see /data/ is NFS mounted. Any ideas how I can solve this?
12 Replies
Immich
Immich3w ago
:wave: Hey @dub4u, Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:. References - Container Logs: docker compose logs docs - Container Status: docker ps -a docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy - Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA Checklist I have... 1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time). 2. :ballot_box_with_check: read applicable release notes. 3. :ballot_box_with_check: reviewed the FAQs for known issues. 4. :ballot_box_with_check: reviewed Github for known issues. 5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy). 6. :ballot_box_with_check: uploaded the relevant information (see below). 7. :ballot_box_with_check: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable (an item can be marked as "complete" by reacting with the appropriate number) Information In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider: - Your docker-compose.yml and .env files. - Logs from all the containers and their status (see above). - All the troubleshooting steps you've tried so far. - Any recent changes you've made to Immich or your system. - Details about your system (both software/OS and hardware). - Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h). - The version of the Immich server, mobile app, and other relevant pieces. - Any other information that you think might be relevant. Please paste files and logs with proper code formatting, and especially avoid blurry screenshots. Without the right information we can't work out what the problem is. Help us help you ;) If this ticket can be closed you can use the /close command, and re-open it later if needed. Successfully submitted, a tag has been added to inform contributors. :white_check_mark:
NoMachine
NoMachine3w ago
so you have nfs mounted in docker? let the OS handle the mounts, and just add bind volumes to docker
dub4u
dub4uOP3w ago
No, I didn't mount inside the container. The volumes are NFS mounted with autofs in the OS from .env: UPLOAD_LOCATION=/mnt/Library/Immich
NoMachine
NoMachine3w ago
well, you'll have to share the information the bot asked you, cause we can't do much if we have to guess everything
dub4u
dub4uOP3w ago
OK, sure
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.5 LTS"
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.5 LTS"
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.6G 1.9M 1.6G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 98G 50G 44G 53% /
tmpfs 7.7G 4.0K 7.7G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p2 2.0G 253M 1.6G 14% /boot
/dev/nvme0n1p1 1.1G 63M 1011M 6% /boot/efi
home-server:/volume1/Library 5.5T 2.3T 3.2T 42% /mnt/Library
home-server:/volume1/XXXX 5.5T 2.3T 3.2T 42% /mnt/XXXX
tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.6G 1.9M 1.6G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 98G 50G 44G 53% /
tmpfs 7.7G 4.0K 7.7G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p2 2.0G 253M 1.6G 14% /boot
/dev/nvme0n1p1 1.1G 63M 1011M 6% /boot/efi
home-server:/volume1/Library 5.5T 2.3T 3.2T 42% /mnt/Library
home-server:/volume1/XXXX 5.5T 2.3T 3.2T 42% /mnt/XXXX
tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000
dub4u
dub4uOP3w ago
dub4u
dub4uOP3w ago
Immich server and app are all latest release. Anything else you need?
NoMachine
NoMachine3w ago
is no root squash enabled in your server?
dub4u
dub4uOP3w ago
Not that I'm aware of, I just followed these instructions https://docs.immich.app/install/docker-compose/ Both files and directories involved have 777 permissions
NoMachine
NoMachine3w ago
I meant your nfs server
dub4u
dub4uOP3w ago
NFS server is an old Synology NAS, with these settings
No description

Did you find this page helpful?