Failed to read upload/encoded-video/.immich: Error: ENOEN
[Nest] 7 - 05/09/2025, 10:54:57 PM ERROR [Microservices:StorageService] Failed to read upload/encoded-video/.immich: Error: ENOENT: no such file or directory, open 'upload/encoded-video/.immich'
microservices worker error: Error: Failed to read "<UPLOAD_LOCATION>/encoded-video/.immich - Please see https://immich.app/docs/administration/system-integrity#folder-checks for more information.", stack: Error: Failed to read "<UPLOAD_LOCATION>/encoded-video/.immich - Please see https://immich.app/docs/administration/system-integrity#folder-checks for more information."
at StorageService.verifyReadAccess (/usr/src/app/dist/services/storage.service.js:84:19)
at async /usr/src/app/dist/services/storage.service.js:38:21
at async /usr/src/app/dist/repositories/database.repository.js:250:27
at async /usr/src/app/node_modules/kysely/dist/cjs/kysely.js:535:20
at async DefaultConnectionProvider.provideConnection (/usr/src/app/node_modules/kysely/dist/cjs/driver/default-connection-provider.js:12:20)
at async /usr/src/app/dist/repositories/database.repository.js:247:13
[Nest] 7 - 05/09/2025, 10:54:57 PM LOG [Microservices:StorageService] Verifying system mount folder checks, current state: {"mountChecks":{"thumbs":true,"upload":true,"backups":true,"library":true,"profile":true,"encoded-video":true}}
[Nest] 19 - 05/09/2025, 10:54:57 PM LOG [Api:EventRepository] Initialized websocket server
microservices worker exited with code 1
Killing api process
36 Replies
:wave: Hey @McVitas,
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. :blue_square: verified I'm on the latest release(note that mobile app releases may take some time).
2. :blue_square: read applicable release notes.
3. :blue_square: reviewed the FAQs for known issues.
4. :blue_square: reviewed Github for known issues.
5. :blue_square: tried accessing Immich via local ip (without a custom reverse proxy).
6. :blue_square: uploaded the relevant information (see below).
7. :blue_square: 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.did you change UPLOAD_LOCATION location?
any change in permission ?
.env: everything default and:
UPLOAD_LOCATION=d:\immich-lib
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- e:/fotky:/fotkyE
- /etc/localtime:/etc/localtime
it was working and probably after server reboot it does not. I can see file

I didn't do anything with permissions. Docker runs as administrators and file has administrators:full control permission
https://discord.com/channels/979116623879368755/994044917355663450/1368658394306711552
Doesn't look like you're using a docker volume?
sorry, how do I check it or what does it even mean?
It seems to me like the variable <UPLOAD_LOCATION> is not being populated judging by this line...
Failed to read upload/encoded-video/.immich: Error: ENOENT: no such file or directory, open 'upload/encoded-video/.immich'
Yes that part means your upload location is not mounted to docker anymore
I haven't changed anything so that doesn't make any sense. My .env and docker-compose.yml should be correct
but I have an idea - maybe the docker desktop starts BEFORE the drive is bitlocker unlocked!
and then it somehow can't see it even after I start docker compose?
That's usually how it goes yes
and now it works after I restarted Docker desktop...
I wonder, can I move that folder to my C: and will it work then when I just edit it in .env?
UPLOAD_LOCATION=d:\immich-lib
to c:\immich-lib
If you move all the files, including the hidden ones, it should just work yes
OK thanks!
Please consider https://immich.app/docs/install/requirements/#special-requirements-for-windows-users
postgres on NTFS will break
that's what I asked already - this doesn't make any sense, because how can I have anything else then NTFS on a Windows system?? Althought why would file system matter if it's docker?
Docker on Windows (needs to) run(s) in a VM, which will have its own file system mounted at e.g. the location of docker volumes.
The file system matters because postgres assumes specific permissions on its folder, and NTFS sucks badly and (for whatever stupid reason) has a different ownership/permissisions system
in that case the documentation sucks badly as well 😦 It's basically just a warning and no recommended setup example!
Now I run Docker desktop and Immich seems to be working fine, so am I lucky and it will work or do I risk that something will break later? This is really not good.
do you mean I should run Ubuntu in hyper-V for example and there docker? I already have this for Apache, but the problem is that Ubuntu does not have access to the host disks and I am not sure how to do it and really it looks complicated to me
Using Windows as your "server" will always suck, that's just how it is
Hyper-V isn't a great hypervisor either tbh, but it'd be an option
Is this a dedicated system or your workstation?
I worked for many years as a windows server administrator, so you don't need to tell me how it sucks or doesn't 😉 I already have a lot of experience and I am just used to it, so no problem for me.
Now I feel sorry for you :/
I also have a lot of experience with different Linux distros and it was always more troubleshooting and frustration then work 😂
you could use docker in wsl (not docker desktop) and mount it in the wsl filesystem (anything but /mnt).
is good for testing but if you are going to host your personal library, I wouldn't take the risk of run it on Windows.
this is all very vague. Can't someone tell me how exactly this Postgre permission problem happens and when, so we can clearly see if it applies to my setup? I don't like this kind of probable maybes...
If it's production, don't use Windows. If it's for testing, use a docker volume to store your database on. That's the highest chance of stuff not going 📉
It's a known issue, it happens very often, it's applicable to ALL NTFS partitions, there is an easy fix, what more do you need?
It's basically just a warning and no recommended setup example!What do you mean by this? The linked section says exactly what to change to make it work
This is saying exactly what our docs say, too, no?
yes when I explicitly asked. From what you guys told me it looked like I need to setup a VM or something in WSL. Docs also does not clearly explain if just changing the two files is all I need
anyway if I already have Postgres in c:\immich\postgres I suppose that cannot be reused. I just start over...?
I don't see how the text:
The Immich Postgres database (DB_DATA_LOCATION) must be located on a filesystem that supports user/group ownership and permissions (EXT2/3/4, ZFS, APFS, BTRFS, XFS, etc.). - It will not work on any filesystem formatted in NTFS or ex/FAT/32. - It will not work in WSL (Windows Subsystem for Linux) when using a mounted host directory (commonly under /mnt). If this is an issue, you can change the bind mount to a Docker volume instead as follows: Make the following change to .env:
Add the following line to the bottom of docker-compose.yml:Does not summarise exactly what you asked. It points out 2 issues: will not work on NTFS/FAT32 and will not work on WSL. Nothing says "you have to run this on WSL", it says you CANT run postgres in WSL. Just do a backup-restore
backup the running system, change to postgres volume, restore
"It will not work in WSL (Windows Subsystem for Linux) when using a mounted host directory"
- in other words this can be understood as "it WILL work in WSL if you do something differently".
but now I see docker desktop has a built-in WSL2
Right, and then it goes on to explain exactly what to do differently?