reassignFacesById does not seem to work

Hello,
I’m on Immich 2.1 (Docker Compose) and I’m trying to move a misidentified face from person N to person R. I’m the only admin/user and the API key has full access. The asset is from an unshared external library.

What works

I can fetch the destination person (R):
curl -s "http://SERVER:PORT/api/people/
<R-person-id>"
-H "x-api-key: <API_KEY>"

{"id": "<R-person-id>", "name": "R", ...}

I can list faces on the asset:
curl -s "http://SERVER:PORT/api/faces?id=
<asset-id>"
-H "x-api-key: <API_KEY>"

[
{"id":"da0d22c9-...","person":{"id":"<N-person-id>","name":"N"}},
{"id":"05d25bc2-...","person":{"id":"<N-person-id>","name":"N"}},
{"id":"149c16e6-...","person":{"id":"<U-person-id>","name":"U"}}
]

What I am trying to do:

Move face 05d25bc2-… from N to R.

Call I’m making

curl -L -X PUT "http://SERVER:PORT/api/faces/05d25bc2-...
"
-H "x-api-key: <API_KEY>"
-H "Content-Type: application/json"
-d '{"id":"<R-person-id>"}'

API documentation

What I expect

The face gets reassigned to person R.

What i get:

Response (HTTP 400):
{"message":"Not found or no person.update access","error":"Bad Request","statusCode":400,"correlationId":"z4lgohai"}

Notes:

  • API key is from the admin account, no other accounts exist, nothing is shared
  • Face is visible on the asset and currently assigned to N.
  • No logs mention anything regarding API calls
  • Moving the faces manually on the webui works.
    Any ideas on what I’m missing or a different endpoint/payload I should be using? I also saw /people/{id}/reassign but as this call doesnt take the face_id as input (only asset and personID), I can only move both N faces to R and not only a single one. This call works but doesnt help me as i want to move only one face.
Thanks
Was this page helpful?