Skip to content

[Bug] People avatar page blank on Synology NAS (works on Ubuntu) #24086

@hy20151047

Description

@hy20151047

I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

Bug description

When deploying Immich on a Synology NAS, the "People" (faces) page has a frontend loading issue:

  • The first click on a person’s avatar correctly opens the person’s photo collection page.
  • After returning to the people list and clicking another avatar, the page becomes blank.
  • Only a manual refresh (Ctrl+F5) or pressing Enter in the address bar will load the page correctly.

With the same configuration and version deployed on a PC (Ubuntu), this issue does not occur. Clicking avatars always works as expected.


Steps to reproduce

  1. Deploy Immich on Synology NAS using Docker (image: ghcr.io/immich-app/immich-server:release).
  2. Open the web interface → go to the “People” tab.
  3. Click on one person’s avatar → page loads correctly.
  4. Go back to the people list → click another avatar → page is blank.
  5. Refresh the page or press Enter in the address bar → photos load correctly.

Expected behavior

Clicking a person’s avatar should directly display the person’s photo collection page without requiring a manual refresh.


Actual behavior

  • First click works fine.
  • Subsequent clicks on other avatars result in a blank page.
  • Manual refresh or pressing Enter is required to display the photos.

Browser console error

Uncaught Error: https://svelte.dev/e/state_unsafe_mutation
    at Yn (RhazAcOO.js:1:2161)
    at J (RhazAcOO.js:1:13122)
    at onFocusOut (17.DikGc65P.js:1:8140)
    at HTMLDivElement.E (Bd29en_E.js:1:764)
    at Ar (RhazAcOO.js:1:19734)
    at C (RhazAcOO.js:1:19423)
    at u (RhazAcOO.js:2:1744)
    at RhazAcOO.js:1:19961
    at xr (RhazAcOO.js:1:20055)
    at Re (RhazAcOO.js:1:19940)



### The OS that Immich Server is running on

NAS environment: Synology DS918+, DSM 7.x, Docker  PC environment: Ubuntu 20.04, Docker

### Version of Immich Server

Immich version: v2.2.3 (release image)

### Version of Immich Mobile App

Immich version: v2.2.3 

### Platform with the issue

- [ ] Server
- [ ] Web
- [ ] Mobile

### Device make and model

Browser: Chrome/Edge latest

### Your docker-compose.yml content

```YAML
services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION}
    restart: always
    depends_on:
      - database
      - redis
      - immich-microservices
    environment:
      TZ: ${TZ}
      DB_HOSTNAME: ${DB_HOSTNAME}
      DB_USERNAME: ${DB_USERNAME}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_DATABASE_NAME: ${DB_DATABASE_NAME}
      REDIS_HOSTNAME: ${REDIS_HOSTNAME}
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /volume1/照片视频备份:/mnt/external:ro
      - /etc/localtime:/etc/localtime:ro
      - /volume1/docker/immich/geodata:/build/geodata
      - /volume1/docker/immich/langs:/usr/src/app/server/node_modules/i18n-iso-countries/langs
    ports:
      - "2283:2283"
    labels:
      - "com.centurylinklabs.watchtower.enable=false"

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION}
    restart: always
    depends_on:
      - database
      - redis
    environment:
      TZ: ${TZ}
      DB_HOSTNAME: ${DB_HOSTNAME}
      DB_USERNAME: ${DB_USERNAME}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_DATABASE_NAME: ${DB_DATABASE_NAME}
      REDIS_HOSTNAME: ${REDIS_HOSTNAME}
    volumes:
      - /volume1/照片视频备份:/mnt/external:ro
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    labels:
      - "com.centurylinklabs.watchtower.enable=false"

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION}
    restart: always
    volumes:
      - ${MODEL_CACHE_DIR}:/cache
      - /volume1/照片视频备份:/mnt/external:ro
      - /etc/localtime:/etc/localtime:ro
    labels:
      - "com.centurylinklabs.watchtower.enable=false"

  redis:
    container_name: immich_redis
    image: redis:6.2
    restart: always
    # Redis 可以让 Watchtower 自动更新
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
    environment:
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: "--data-checksums"
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
      - /etc/localtime:/etc/localtime:ro
    shm_size: 128mb
    restart: always
    labels:
      - "com.centurylinklabs.watchtower.enable=false"

  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --cleanup --interval 86400

Your .env content

UPLOAD_LOCATION=/home/huyan/immich/immich-library

MODEL_CACHE_DIR=/home/huyan/immich/model-cache

DB_DATA_LOCATION=/home/huyan/immich/dbdata

TZ=Asia/Shanghai

IMMICH_VERSION=release

DB_USERNAME=postgres

DB_PASSWORD=MyNewSecurePass123
DB_DATABASE_NAME=immich
DB_HOSTNAME=database 

REDIS_HOSTNAME=redis # 容器网络服务名称

Reproduction steps

Reproduction steps

  1. Open Immich UI:
    Navigate to your NAS deployment URL (e.g., http://:2283).
    2.Go to People tab:
    Click the People section to view detected faces.
    3.Open first person:
    Click any person’s avatar.
    Observe: the person’s photo collection page loads correctly.
    4.Return to list:
    Use the back action (browser Back or UI Back) to return to the People list.
    5.Open another person:
    Click a different person’s avatar.
    Observe: the page becomes blank (no photos rendered).
    6.Force load to display:
    Press Enter in the browser address bar, or do a hard refresh (Ctrl+F5).
    Observe: the person’s photo collection then loads correctly.
    7.Confirm it’s intermittent but frequent:
    Repeat steps 4–6 on multiple avatars.
    Observe: the blank-page behavior occurs most of the time; occasionally it loads without refresh.
    8.Capture console error (optional but recommended):
    Press F12 → open Console.
    Perform steps 3–5 again and record the error:
    Uncaught Error: https://svelte.dev/e/state_unsafe_mutation
    Include stack trace if available.
    9.Environment parity check:
    Repeat the same steps on a PC (Ubuntu) deployment of Immich with the same version and configuration.
    Observe: the issue does not occur; every avatar click loads the page normally.

Relevant log output

Additional information

The issue only occurs on NAS deployment. PC deployment with the same configuration and version works fine.

Suspect this is related to frontend routing or Svelte state management behaving differently depending on environment.

Please confirm if this is a frontend bug and advise on possible fixes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions