Immich-Machine-Learning
Hello, I'm having trouble using my Immich server. I set it up in Proxmox in a VM using Docker Compose. I have mounted an NFS drive as a library. The server itself is running without issues, but the face recognition isn't working. Overall, the machine learning is not functioning. I keep getting the following error message.
immich_server | [Nest] 7 - 09/02/2025, 10:44:01 AM ERROR [Microservices:{"source":"upload","id":"94fae3a3-1e56-415d-92c7-e245396d27b1"}] Unable to run job handler (AssetDetectFaces): Error: Machine learning request '{"facial-recognition":{"detection":{"modelName":"buffalo_l","options":{"minScore":0.7}},"recognition":{"modelName":"buffalo_l"}}}' failed for all URLs
44 Replies
:wave: Hey @BidiZar,
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.my yml:
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.transcoding.yml
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:2283
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
immich-machine-learning:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
# Example tag: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
# file: hwaccel.ml.yml
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the
-wsl
version for WSL2 where applicable
volumes:
- model-cache:/media/Immich-learning
env_file:
- .env
restart: always
healthcheck:
disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-trixie@sha256:a137a2b60aca1a75130022d6bb96af423fefae4eb55faf395732db3544803280
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: --data-checksums
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
# DB_STORAGE_TYPE: 'HDD'
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
shm_size: 128mb
restart: always
volumes:
model-cache: null
networks: {}
my env:
VARIABLE=value #comme# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
The location where your uploaded files are stored
UPLOAD_LOCATION=/media/Immich-Storage
The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=/media/Immich-Postgres
To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
TZ=Europe/Berlin
The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release
Connection secret for postgres. You should change it to a random password
Please use only the characters A-Za-z0-9
, without special characters or spaces
DB_PASSWORD=postgres
The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immichWhat do the logs say for the ML container?
post
docker ps -a
tooAnd please use code formatting
sorry
docker ps -a

docker logs

immich machine learning runs in the same stack as the server
You could check with
docker logs immich_machine_learning
@BidiZar I don't see the ML logs here
Nevermind, I think I see the error
model-cache:/media/Immich-learning
what's that?
That should be model-cache:/cache
It was before but it doesnt work
So i tried this
If you want to do that, it should be
/media/Immich-learning:/cache
not the other way aroundshit
but Even with this setting, it doesn't work.
It seems to only happen when I specify a different path for the library, whether it's a USB drive or a NAS drive.
zum verzweifeln
Still the same error
immich_server | [Nest] 7 - 09/02/2025, 1:23:43 PM ERROR [Microservices:{"id":"98c5a66b-f2dc-4271-a763-109fa798444a"}] Unable to run job handler (AssetDetectFaces): Error: Machine learning request '{"facial-recognition":{"detection":{"modelName":"buffalo_l","options":{"minScore":0.7}},"recognition":{"modelName":"buffalo_l"}}}' failed for all URLs
docker logs immich_machine_learning

Are you doing a compose up after making these changes @BidiZar ?
yes
Could you make sure with
docker inspect immich_machine_learning | grep HostConfig -A25
Should see:
wait

That's fine too, assuming your host has a directory /media/Immich-learning
What's inside that directory?
nothing
it is empty....
try
mkdir -p /media/Immich-learning/_data/clip && mkdir /media/Immich-learning/_data/facial-recognition
ok
and now ?
It still doesn't work.
Is everything correct here?

Yes, that's the default setting
ok
You might want to set
IMMICH_LOG_LEVEL=DEBUG
and see it anything interesting comes out
I'm assuming some kind of permissions issue
but I see none of that in the logsin the yaml ?

env file
ok
wait
ok done
what now
Check the logs again, there should be a lot more
i see this

at startup
nop it wont start again
it is brocken now
👀
you could go crazy and just remove the machine learning volume altogether
It will redownload the ML model on every upgrade like that but at least it will rule out any issues there
well i try it
It looks like hugginface is refusing the connection for some reason
"I set up the server again and made some changes."
Now I don't get any errors anymore, but the ML still doesn't work.
immich_server | [Nest] 7 - 09/03/2025, 8:16:24 AM LOG [Microservices:PersonService] Detected 2 new faces in asset 37ead85b-8403-4107-93aa-816e92bbfafb
Looks like it detects the faces but just doesn't save them
it doesn't make a new person until the threshold is reached, which is 3 by default
3 faces = new person
ahhh ok
ok now it wored .......it was my pihole....