Repository navigation
[Bug]: Cannot save name using Japanese IME on the People page (/people) #32715
Description
I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
- Yes
The bug
Describe the bug
On the People page (https://<immich_server_url>/people), entering a name into the "Add a name" input field under an unnamed person's avatar fails when using a Japanese IME (Input Method Editor).
After typing a name in Japanese and confirming the composition (pressing Enter to commit the characters), the text is not registered/saved, leaving the person unnamed.
However, if Japanese text is copied to the clipboard and pasted directly into the field while the IME is turned off, the name is saved without issues. This suggests it is not a character encoding problem, but rather an issue handling IME composition events (such as compositionstart / compositionend / Enter key handling) in this specific input component.
Additionally, this problem does not occur on the individual person's detail page (/people/[id]); setting a Japanese name there works properly.
Steps to reproduce
- Navigate to the People page (
/people). - Locate an unnamed detected face with the "Add a name" placeholder.
- Turn on a Japanese IME.
- Type a name in Japanese and confirm the input (press Enter to finish IME composition).
- The name fails to save/register and the field reverts or remains unset.
Expected behavior
The Japanese name confirmed via IME should be saved properly, identical to pasting text or inputting text on the individual person's detail page.
Additional information
- Copy-pasting pre-typed Japanese text into the field works normally.
- Renaming directly from the individual person's page works without issue.
The OS that Immich Server is running on
26.04.1 LTS
Version of Immich Server
3.3.5
Version of Immich Mobile App
3.3.5 build26
Platform with the issue
- Server
- Web
- Mobile
Device make and model
Mac mini M4 Pro
Your docker-compose.yml content
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:v3
user: "${UID}:${GID}"
volumes:
# アップロード領域(/mnt/disk1/docker/immich/library 配下)
- ./library:/data
# 既存写真フォルダの参照(読み取り専用)
- /mnt/disk1/hitoshi/Pictures:/mnt/external_pictures:ro
- /etc/localtime:/etc/localtime:ro
environment:
TZ: Asia/Tokyo
LANG: C.UTF-8
LC_ALL: C.UTF-8
# Cloudflare Tunnel / Nginx 経由でのみアクセスするため ports は削除
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
networks:
- be-immich
# immich-machine-learning:
# container_name: immich_machine_learning
# image: ghcr.io/immich-app/immich-machine-learning:v3
# user: "${UID}:${GID}"
# volumes:
# - model-cache:/cache
# environment:
# MACHINE_LEARNING_MODEL_REVISION: v2
# restart: always
# healthcheck:
# disable: false
# networks:
# - be-immich
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:9
user: "${UID}:${GID}"
healthcheck:
test: redis-cli ping | grep -q PONG || exit 1
restart: always
networks:
- be-immich
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: immich
POSTGRES_INITDB_ARGS: --data-checksums
DB_STORAGE_TYPE: SSD
PUID: ${UID}
PGID: ${GID}
volumes:
# 内蔵SSD上のDB領域
- /var/lib/immich/postgres:/var/lib/postgresql/data
shm_size: 128mb
restart: always
healthcheck:
disable: false
networks:
- be-immich
volumes:
model-cache:
networks:
be-immich:
external: true
------
immich-ML on a different machine
services:
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
environment:
- MACHINE_LEARNING_WORKERS=4
- MACHINE_LEARNING_MODEL_TTL=300
- ONNX_NUM_THREADS=4
- OMP_NUM_THREADS=4
volumes:
- model-cache:/cache
ports:
- "3003:3003"
restart: always
volumes:
model-cache:Your .env content
UID=2000
GID=2000Reproduction steps
- Open /people page
- Select an unnamed person
- select the textbox beneath with a place holder "add a name"
- input some Japanese name with Japanese IME on.
- Press Enter key
...
Relevant log output
Additional information
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsReady
Activity
chobi2000 commentedon Oct 26, 2026
Possible Root Cause (Technical Note)
In the inline name input component on the
/peoplepage, thekeydownevent listener appears to handle theEnterkey without checkingevent.isComposing(orevent.keyCode === 229).When using a CJK (Japanese/Chinese/Korean) IME, pressing
Enterto confirm character composition triggers thekeydownhandler prematurely—beforecompositionendupdates the bound state variable (bind:value), or causes the input to blur/reset while the value is still empty.Adding a guard clause in the
keydownhandler should resolve this: