Immich update breaks uploaded photos
I updated my truenas version of immich.
App Version: v1.137.3
Version: v1.9.12
All the thumbnail and images are broken. When i looked at the logs I see this ERROR [Microservices:{"id":"86d79eab-c9db-421b-9965-dd522271a0af"}] Unable to run job handler (AssetGenerateThumbnails): Error: Input file is missing: upload/upload/0c0f21ea-be48-439b-8b6b-322530786bb1/1b/d4/1bd4648d-a663-4b1d-ad01-986832e56b31.HEIC
i have this folder structure
what could be causing this error?

31 Replies
:wave: Hey @monke0202,
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.I see that I was supposed to do something before I upgraded, how can I fix it if I already upgraded
Curious, what have you upgraded from?
https://immich.app/docs/administration/server-commands/
Otherwise, I think you could use the last commmand of this
your before path being upload and new one /data
SAme problem here. Did not see that i have to do something upgraded from 1.9.6 (immich 1.135.3) to 1.912. (immich 1.137.3) and now the thaumbnails are missing. In the iold version there was an extra thmubnail "Storage" I had defined in the app. Now it seems to look right under the upload folder?
On TrueNAS side they "simplified" the process by only requiring 2 datasets: 1 for the database, 1 for all other data -> your thumbnails are now a folder inside the "upload" dataset instead of being a simple dataset
Could you check, inside immich-server container if /data/thumbs exists?
Yes /data/thumbs exist, and there are the thumbnails.
It is the one i mounted in the "old" version into the container.
Ok so I suppose that issues comes from 1.135 -> 1.137 without passing by 1.136
Can you show your logs so I'm certain of it?
Otherwise, you can run the command to change from /upload to/data
Which command?

The one I gave a link to
If the error log is similar like
upload/upload/
or upload/thumbs/
your previous value is upload/
new. value has to be /data/
thanks let me try this
Check that your data is in /data first
2025-08-02 19:34:04.172154+00:00Error: ENOENT: no such file or directory, access 'upload/thumbs/1035b75f-a1e4-42f8-a6b4-9664bc899c50/d1/d0/d1d07e2f-d2de-405a-8d8c-e936733f6a28-thumbnail.webp'
2025-08-02 19:34:04.172169+00:00at async access (node:internal/fs/promises:606:10)
2025-08-02 19:34:04.172182+00:00at async sendFile (/usr/src/app/server/dist/utils/file.js:49:9)
2025-08-02 19:34:04.172197+00:00at async AssetMediaController.viewAsset (/usr/src/app/server/dist/controllers/asset-media.controller.js:60:13)
2025-08-02 19:34:04.172361+00:00[31m[Nest] 16 - [39m08/02/2025, 9:34:04 PM [31m ERROR[39m [33m[Api:LoggingRepository~d9nzd75j][39m [31mUnable to send file: Error[39m
2025-08-02 19:34:04.172379+00:00Error: ENOENT: no such file or directory, access 'upload/thumbs/1035b75f-a1e4-42f8-a6b4-9664bc899c50/37/2f/372ffc1a-5b9f-4bae-9801-513eb8404d94-thumbnail.webp'
2025-08-02 19:34:04.172395+00:00at async access (node:internal/fs/promises:606:10)
2025-08-02 19:34:04.172403+00:00at async sendFile (/usr/src/app/server/dist/utils/file.js:49:9)
2025-08-02 19:34:04.172410+00:00at async AssetMediaController.viewAsset (/usr/src/app/server/dist/controllers/asset-media.controller.js:60:13)
Thats my error log.
root@22e5ac4d3d58:/usr/src/app# echo $IMMICH_MEDIA_LOCATION
/data
root@22e5ac4d3d58:/usr/src/app# cd /data/
root@22e5ac4d3d58:/data# ls
backups encoded-video library profile thumbs upload
looks the same on my side...
do i just need to point UPLOAD_LOCATION to /data/upload?
Do you have an environment variable specifying that?
Otherwise TrueNAS has one defined
i guess I can specify it on truenas app like this

I would do the command immich-admin change-media-location command
what do i change it to?
previous value: upload
new value: /data
same for @AndyMcSchopf
i get this
root@22e5ac4d3d58:/data# immich-admin change-media-location
Initializing Immich v1.137.3
Detected CPU Cores: 4
node:fs:441
return binding.readFileUtf8(path, stringToFlags(options.flag));
^
Error: ENOENT: no such file or directory, open './package.json'
at readFileSync (node:fs:441:20)
at Object.<anonymous> (/usr/src/app/server/dist/constants.js:37:59)
at Module._compile (node:internal/modules/cjs/loader:1730:14)
at Object..js (node:internal/modules/cjs/loader:1895:10)
at Module.load (node:internal/modules/cjs/loader:1465:32)
at Function._load (node:internal/modules/cjs/loader:1282:12)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
at Module.require (node:internal/modules/cjs/loader:1487:12)
at require (node:internal/modules/helpers:135:16) {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: './package.json'
}
cd before that
I've the same error if in /data
Enter the previous value of IMMICH_MEDIA_LOCATION: [upload]
I suppose it give this?
Or does it gives
Enter the previous value of IMMICH_MEDIA_LOCATION: [/data] ?
it gives this Enter the previous value of IMMICH_MEDIA_LOCATION: [/data]
that is weird
try with the 'upload' value
okay just did it, let me restart
Oh no that is not weird, it fetches the current value
It's the migration that looks that it failed, so I suppose it is normal
It should fix it
(I hope so anyway)
Youre a genius thank you
It fixed it! Thank you so much
Nice! No problem
Thanks guys!!! 😄 it did work for me either!
Successfully submitted, a tag has been added to inform contributors. :white_check_mark: