Mobile Syncing over 20,000 images is unreliable #5944

Closed
opened 2026-02-05 11:52:51 +03:00 by OVERLORD · 9 comments
Owner

Originally created by @Daniel-dev22 on GitHub (May 2, 2025).

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

  • Yes

The bug

I'm trying to sync over 20,000 assets from my newly installed immich app on Android 15 and the app repeatedly crashes. I have to keep opening it pressing start/stop backup a bunch of times as that also freezes and eventually force stop the app.

The app crashes where Samsung is reporting the app repeatedly crashing. It takes a very long time for the app to calculate what to sync and start syncing. After a lot of manual intervention I'm now at 3,000 assets left but I'm still running into this issue.

It seems like an optimization issue when handling more than a few images to sync at once.

The OS that Immich Server is running on

Truenas scale

Version of Immich Server

1.132.1

Version of Immich Mobile App

1.132.3 build.197

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

services:
  immich-server:
    container_name: immich_server
    image: ${CURRENT_IMMICH_SERVER_IMAGE}
    devices:
    - /dev/dri/renderD128:/dev/dri
    volumes:
    - /mnt/raid_array/docker_container_volumes/immich_storage:/usr/src/app/upload
    - /etc/localtime:/etc/localtime:ro
    networks:
      traefik-network:
        ipv4_address: 10.0.1.20
      immich-stack-network:
        ipv4_address: 10.0.2.2
    environment:
      UPLOAD_LOCATION: /mnt/raid_array/docker_container_volumes/immich_storage/upload
      DB_DATABASE_NAME: ${DB_DATABASE_NAME}
      DB_USERNAME: ${DB_USERNAME}
      DB_PASSWORD: ${DB_PASSWORD}
    depends_on:
    - redis
    - database
    restart: always
    healthcheck:
      disable: false
    labels:
    - traefik.enable=true
    - traefik.http.routers.immich.rule=Host(`photos.domain.com`)
    - traefik.http.routers.immich.entrypoints=websecure
    - traefik.http.routers.immich.tls=true
    - traefik.http.routers.immich.tls.certresolver=le
    - traefik.http.routers.immich.service=immich
    - traefik.http.services.immich.loadbalancer.server.port=2283
    - traefik.http.routers.immich.middlewares=secured-headers@file
    - traefik.docker.network=traefik-network
  immich-machine-learning:
    container_name: immich_machine_learning
    image: ${CURRENT_IMMICH_MACHINE_LEARNING_IMAGE}
    device_cgroup_rules:
    - c 189:* rmw
    devices:
    - /dev/dri/renderD128:/dev/dri
    networks:
      immich-stack-network:
        ipv4_address: 10.0.2.3
    volumes:
    - /dev/bus/usb:/dev/bus/usb
    - /mnt/fast_storage/docker_container_volumes/immich/model_cache:/cache
    restart: always
    healthcheck:
      disable: false
  redis:
    container_name: immich_redis
    image: ${CURRENT_IMMICH_REDIS_IMAGE}
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
    networks:
      immich-stack-network:
        ipv4_address: 10.0.2.4
  database:
    container_name: immich_postgres
    image: ${CURRENT_IMMICH_POSTGRES_IMAGE}
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: --data-checksums
      DB_DATA_LOCATION: /mnt/fast_storage/docker_container_volumes/immich/postgres
    volumes:
    - /mnt/fast_storage/docker_container_volumes/immich/postgres:/var/lib/postgresql/data
    networks:
      immich-stack-network:
        ipv4_address: 10.0.2.5
    healthcheck:
      test: pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" ||
        exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}"
        --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures),
        0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [
        "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command: postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user",
      public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB
      -c wal_compression=on
    restart: always
networks:
  traefik-network:
    external: true
  immich-stack-network:
    external: true

Your .env content

.

Reproduction steps

1.try to sync from mobile 20,000 assets
2.notice app instability and several crashes
3. Continuously manually force stop, use the wait option when it asks to kill the app and start/stop the backup
4. Eventually get to around 15,000 assets no crashes but the app definitely freezes up on calculating what to backup and beginning a backup.
...

Relevant log output


Additional information

No response

Originally created by @Daniel-dev22 on GitHub (May 2, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug I'm trying to sync over 20,000 assets from my newly installed immich app on Android 15 and the app repeatedly crashes. I have to keep opening it pressing start/stop backup a bunch of times as that also freezes and eventually force stop the app. The app crashes where Samsung is reporting the app repeatedly crashing. It takes a very long time for the app to calculate what to sync and start syncing. After a lot of manual intervention I'm now at 3,000 assets left but I'm still running into this issue. It seems like an optimization issue when handling more than a few images to sync at once. ### The OS that Immich Server is running on Truenas scale ### Version of Immich Server 1.132.1 ### Version of Immich Mobile App 1.132.3 build.197 ### Platform with the issue - [ ] Server - [ ] Web - [x] Mobile ### Your docker-compose.yml content ```YAML services: immich-server: container_name: immich_server image: ${CURRENT_IMMICH_SERVER_IMAGE} devices: - /dev/dri/renderD128:/dev/dri volumes: - /mnt/raid_array/docker_container_volumes/immich_storage:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro networks: traefik-network: ipv4_address: 10.0.1.20 immich-stack-network: ipv4_address: 10.0.2.2 environment: UPLOAD_LOCATION: /mnt/raid_array/docker_container_volumes/immich_storage/upload DB_DATABASE_NAME: ${DB_DATABASE_NAME} DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} depends_on: - redis - database restart: always healthcheck: disable: false labels: - traefik.enable=true - traefik.http.routers.immich.rule=Host(`photos.domain.com`) - traefik.http.routers.immich.entrypoints=websecure - traefik.http.routers.immich.tls=true - traefik.http.routers.immich.tls.certresolver=le - traefik.http.routers.immich.service=immich - traefik.http.services.immich.loadbalancer.server.port=2283 - traefik.http.routers.immich.middlewares=secured-headers@file - traefik.docker.network=traefik-network immich-machine-learning: container_name: immich_machine_learning image: ${CURRENT_IMMICH_MACHINE_LEARNING_IMAGE} device_cgroup_rules: - c 189:* rmw devices: - /dev/dri/renderD128:/dev/dri networks: immich-stack-network: ipv4_address: 10.0.2.3 volumes: - /dev/bus/usb:/dev/bus/usb - /mnt/fast_storage/docker_container_volumes/immich/model_cache:/cache restart: always healthcheck: disable: false redis: container_name: immich_redis image: ${CURRENT_IMMICH_REDIS_IMAGE} healthcheck: test: redis-cli ping || exit 1 restart: always networks: immich-stack-network: ipv4_address: 10.0.2.4 database: container_name: immich_postgres image: ${CURRENT_IMMICH_POSTGRES_IMAGE} environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: --data-checksums DB_DATA_LOCATION: /mnt/fast_storage/docker_container_volumes/immich/postgres volumes: - /mnt/fast_storage/docker_container_volumes/immich/postgres:/var/lib/postgresql/data networks: immich-stack-network: ipv4_address: 10.0.2.5 healthcheck: test: pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m command: postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on restart: always networks: traefik-network: external: true immich-stack-network: external: true ``` ### Your .env content ```Shell . ``` ### Reproduction steps 1.try to sync from mobile 20,000 assets 2.notice app instability and several crashes 3. Continuously manually force stop, use the wait option when it asks to kill the app and start/stop the backup 4. Eventually get to around 15,000 assets no crashes but the app definitely freezes up on calculating what to backup and beginning a backup. ... ### Relevant log output ```shell ``` ### Additional information _No response_
OVERLORD added the 📱mobile label 2026-02-05 11:52:51 +03:00
Author
Owner

@munitoon commented on GitHub (May 2, 2025):

Is your new phone running One UI 7? I just updated last night and today I am repeatedly seeing the Samsung notification that the app has stopped responding.

@munitoon commented on GitHub (May 2, 2025): Is your new phone running One UI 7? I just updated last night and today I am repeatedly seeing the Samsung notification that the app has stopped responding.
Author
Owner

@Daniel-dev22 commented on GitHub (May 2, 2025):

Is your new phone running One UI 7? I just updated last night and today I am repeatedly seeing the Samsung notification that the app has stopped responding.

Yes one UI 7.0 the app doesn't seem to handle thousands of images to sync very well it was even struggling when it got to a few hundred and also crashing still so maybe the number it can reliably handle is much lower?

@Daniel-dev22 commented on GitHub (May 2, 2025): > Is your new phone running One UI 7? I just updated last night and today I am repeatedly seeing the Samsung notification that the app has stopped responding. Yes one UI 7.0 the app doesn't seem to handle thousands of images to sync very well it was even struggling when it got to a few hundred and also crashing still so maybe the number it can reliably handle is much lower?
Author
Owner

@alextran1502 commented on GitHub (May 2, 2025):

Let me check if there is anything need changes with One UI7

@alextran1502 commented on GitHub (May 2, 2025): Let me check if there is anything need changes with One UI7
Author
Owner

@NicholasFlamy commented on GitHub (May 13, 2025):

This and a few other issue seem to all be related to OneUI 7.

@NicholasFlamy commented on GitHub (May 13, 2025): This and a few other issue seem to all be related to OneUI 7.
Author
Owner

@Tronix117 commented on GitHub (Jun 19, 2025):

@alextran1502 it's a global issue, there is multiple tickets already open for that, app is unusable on some android (mainly Samsung), due to freeze / crash on sync (first sync as well as subsequent synces)
One of the issue why I can't get adoptions for Immich in my family circle.

cf. #12674 #13631

@Tronix117 commented on GitHub (Jun 19, 2025): @alextran1502 it's a global issue, there is multiple tickets already open for that, app is unusable on some android (mainly Samsung), due to freeze / crash on sync (first sync as well as subsequent synces) One of the issue why I can't get adoptions for Immich in my family circle. cf. #12674 #13631
Author
Owner

@alextran1502 commented on GitHub (Jun 19, 2025):

@Tronix117 perfectly aware of the issue and we are working on it as the last major part before the stable release

@alextran1502 commented on GitHub (Jun 19, 2025): @Tronix117 perfectly aware of the issue and we are working on it as the last major part before the stable release
Author
Owner

@kettly1260 commented on GitHub (Jun 30, 2025):

@Tronix117 perfectly aware of the issue and we are working on it as the last major part before the stable release

The same issue occurs on OnePlus and Xiaomi phones. As soon as you open it, it starts lagging, and any operation causes it to crash immediately. Most of the time, it crashes even without any action. You can barely use it after waiting for the gallery to stop loading.

@kettly1260 commented on GitHub (Jun 30, 2025): > [@Tronix117](https://github.com/Tronix117) perfectly aware of the issue and we are working on it as the last major part before the stable release The same issue occurs on OnePlus and Xiaomi phones. As soon as you open it, it starts lagging, and any operation causes it to crash immediately. Most of the time, it crashes even without any action. You can barely use it after waiting for the gallery to stop loading.
Author
Owner

@alextran1502 commented on GitHub (Jun 30, 2025):

Consolidate into #19370

@alextran1502 commented on GitHub (Jun 30, 2025): Consolidate into #19370
Author
Owner

@Tronix117 commented on GitHub (Sep 2, 2025):

I want to tell you since 1.140, and the new timeline, the app is finaly usable ! Thanks for your hard work, I know synchronisation work is not an easy part !

@Tronix117 commented on GitHub (Sep 2, 2025): I want to tell you since 1.140, and the new timeline, the app is finaly usable ! Thanks for your hard work, I know synchronisation work is not an easy part !
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#5944