iOS App Crashes 1.141.1 when opening from background #6668

Open
opened 2026-02-20 04:14:52 -05:00 by deekerman · 6 comments
Owner

Originally created by @roberto2lini on GitHub (Sep 9, 2025).

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

  • Yes

The bug

The Immich iOS App (1.141.1) crashes when trying to re-open the App after having viewed the beta sync status page, and swiping out of the App on the latest iOS 18.6.2

Here a screen recording, since the upload failed: https://drive.google.com/file/d/1vjmui9SxtBruwK69b4YT__ikNcLp-djo/view?usp=sharing

The OS that Immich Server is running on

Ubuntu 22.04.5 LTS

Version of Immich Server

v1.141.1

Version of Immich Mobile App

1.141.1 build.222

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

iPhone 15 Pro Max - iOS 18.6.2

Your docker-compose.yml content

#
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
#
# Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.

name: immich

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:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:8-bookworm@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:

Your .env content

# 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=/mnt/data/immich-app/library
# The location where your database files are stored
DB_DATA_LOCATION=/mnt/data/immich-app/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/Amsterdam

# 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=(redacted)

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

Reproduction steps

Immich_log_2025-09-09T18:19:48.595051.log

  1. Fully Quit Immich App.
  2. Tap to Open App
  3. In the app, go to Settings then Beta Sync Status
  4. Swipe out of App.
  5. Re-open app.
  6. App crashes.

Somethings I noticed while testing:

  1. I cant re-produce this issue when I dont open the app from the Home Screen, but search for the app.

Relevant log output

Attached the logs, but this stands out in Orange: Unknown type SyncCompleteV1

Additional information

No response

Originally created by @roberto2lini on GitHub (Sep 9, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug The Immich iOS App (1.141.1) crashes when trying to re-open the App after having viewed the beta sync status page, and swiping out of the App on the latest iOS 18.6.2 Here a screen recording, since the upload failed: https://drive.google.com/file/d/1vjmui9SxtBruwK69b4YT__ikNcLp-djo/view?usp=sharing ### The OS that Immich Server is running on Ubuntu 22.04.5 LTS ### Version of Immich Server v1.141.1 ### Version of Immich Mobile App 1.141.1 build.222 ### Platform with the issue - [ ] Server - [ ] Web - [x] Mobile ### Device make and model iPhone 15 Pro Max - iOS 18.6.2 ### Your docker-compose.yml content ```YAML # # WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose # # Make sure to use the docker-compose.yml of the current release: # # https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml # # The compose file on main may not be compatible with the latest release. name: immich 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:/cache env_file: - .env restart: always healthcheck: disable: false redis: container_name: immich_redis image: docker.io/valkey/valkey:8-bookworm@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: ``` ### Your .env content ```Shell # 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=/mnt/data/immich-app/library # The location where your database files are stored DB_DATA_LOCATION=/mnt/data/immich-app/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/Amsterdam # 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=(redacted) # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich ``` ### Reproduction steps [Immich_log_2025-09-09T18:19:48.595051.log](https://github.com/user-attachments/files/22238348/Immich_log_2025-09-09T18.19.48.595051.log) 1. Fully Quit Immich App. 2. Tap to Open App 3. In the app, go to Settings then Beta Sync Status 4. Swipe out of App. 5. Re-open app. 6. App crashes. Somethings I noticed while testing: 1. I cant re-produce this issue when I dont open the app from the Home Screen, but search for the app. ### Relevant log output ```shell Attached the logs, but this stands out in Orange: Unknown type SyncCompleteV1 ``` ### Additional information _No response_
Author
Owner

@alexperjescu commented on GitHub (Sep 11, 2025):

I am experiencing this bug too.

@alexperjescu commented on GitHub (Sep 11, 2025): I am experiencing this bug too.
Author
Owner

@shenlong-tanwen commented on GitHub (Sep 12, 2025):

Can both of you test the latest release (1.142.0) and see if you can reproduce the crash there?

@shenlong-tanwen commented on GitHub (Sep 12, 2025): Can both of you test the latest release (1.142.0) and see if you can reproduce the crash there?
Author
Owner

@alexperjescu commented on GitHub (Sep 14, 2025):

Thanks @shenlong-tanwen! The latest release (1.142.0) seems to be a bit more stable, but I'm still experiencing a lot of crashes.

Here's what I see in the logs:

Cannot get file for asset A009CDF4-657B-43E6-8F54-22846E1369F4/L0/001, name: 1890F337-6330-409E-99BE-7D9ACE7D18AA.JPG, created on: 2013-07-03 16:02:59.000 from album: Recents

Message

Error getting file for asset A009CDF4-657B-43E6-8F54-22846E1369F4/L0/001

Details

PlatformException(PHPhotosErrorDomain (3302), The operation couldn’t be completed. (PHPhotosErrorDomain error 3302.), No failure reason provided, null)

From

StorageRepository

Stack Trace

#0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:652)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:370)
<asynchronous suspension>
#2      AssetEntity._getFile (package:photo_manager/src/types/entity.dart:765)
<asynchronous suspension>
#3      StorageRepository.getFileForAsset (package:immich_mobile/infrastructure/repositories/storage.repository.dart:16)
<asynchronous suspension>
#4      HashService._hashAssets (package:immich_mobile/domain/services/hash.service.dart:75)
<asynchronous suspension>
#5      HashService.hashAssets (package:immich_mobile/domain/services/hash.service.dart:54)
<asynchronous suspension>
#6      runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:55)
<asynchronous suspension>
#7      runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:34)
<asynchronous suspension>
#8      WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>

Backup has started a couple of times over the last two days, even though I tried to keep the app open for it to start.

I have a large photo library, 159,560 assets on my iPhone, and they're all synced to iCloud.

Let me know if you need any more info, or if you have any suggestions. So far I only tried to log out and back in.

@alexperjescu commented on GitHub (Sep 14, 2025): Thanks @shenlong-tanwen! The latest release (1.142.0) seems to be a bit more stable, but I'm still experiencing a lot of crashes. Here's what I see in the logs: ``` Cannot get file for asset A009CDF4-657B-43E6-8F54-22846E1369F4/L0/001, name: 1890F337-6330-409E-99BE-7D9ACE7D18AA.JPG, created on: 2013-07-03 16:02:59.000 from album: Recents ``` Message ``` Error getting file for asset A009CDF4-657B-43E6-8F54-22846E1369F4/L0/001 ``` Details ``` PlatformException(PHPhotosErrorDomain (3302), The operation couldn’t be completed. (PHPhotosErrorDomain error 3302.), No failure reason provided, null) ``` From ``` StorageRepository ``` Stack Trace ``` #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:652) #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:370) <asynchronous suspension> #2 AssetEntity._getFile (package:photo_manager/src/types/entity.dart:765) <asynchronous suspension> #3 StorageRepository.getFileForAsset (package:immich_mobile/infrastructure/repositories/storage.repository.dart:16) <asynchronous suspension> #4 HashService._hashAssets (package:immich_mobile/domain/services/hash.service.dart:75) <asynchronous suspension> #5 HashService.hashAssets (package:immich_mobile/domain/services/hash.service.dart:54) <asynchronous suspension> #6 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:55) <asynchronous suspension> #7 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:34) <asynchronous suspension> #8 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106) <asynchronous suspension> ``` Backup has started a couple of times over the last two days, even though I tried to keep the app open for it to start. I have a large photo library, 159,560 assets on my iPhone, and they're all synced to iCloud. Let me know if you need any more info, or if you have any suggestions. So far I only tried to log out and back in.
Author
Owner

@Iuckyone commented on GitHub (Sep 15, 2025):

I'm having the same exact issues with backup as @alexperjescu.

I've only recently setup immich so I've wanted to backup my phone photos using the app and unfortunately the Background Backup just starts/stops randomly for the last 2 days.
Currently it seems like the 2 ~4GB video files are most likely the issue because they are colored red in the Upload Details tab, but the only related logs are "Cannot get file for asset.." and "Error getting file for asset..", and I don't think there is a way to "skip" the file manually.

Also worth mentioning that I've had some troubles at the beginning of Backup because my phone storage was completely full so the app was crashing very often (as any other app would ofc), so something might've been corrupted during that.

@Iuckyone commented on GitHub (Sep 15, 2025): I'm having the same exact issues with backup as @alexperjescu. I've only recently setup immich so I've wanted to backup my phone photos using the app and unfortunately the Background Backup just starts/stops randomly for the last 2 days. Currently it seems like the 2 ~4GB video files are most likely the issue because they are colored red in the Upload Details tab, but the only related logs are "Cannot get file for asset.." and "Error getting file for asset..", and I don't think there is a way to "skip" the file manually. Also worth mentioning that I've had some troubles at the beginning of Backup because my phone storage was completely full so the app was crashing very often (as any other app would ofc), so something might've been corrupted during that.
Author
Owner

@alextran1502 commented on GitHub (Sep 15, 2025):

@Iuckyone Do you use iCloud? Do you mind tracking down those failed upload videos and seeing if they are corrupted?

@alextran1502 commented on GitHub (Sep 15, 2025): @Iuckyone Do you use iCloud? Do you mind tracking down those failed upload videos and seeing if they are corrupted?
Author
Owner

@Iuckyone commented on GitHub (Sep 16, 2025):

So after my last comment I've switched the Backup function off and on, restarted the app few times again and went to sleep. And for unknown reasons the app actually did manage to backup some part of the album ignoring those 2 videos through the night.
Regarding @alextran1502 question - i don't use iCloud Drive and the videos are not corrupted.
I suppose the issue may be related to my reverse proxy and the server side in general, as those 2 videos are actually the largest in my phone library. I'll look into that in a bit.

I still don't understand how the app decides whether to upload the media. Everything seems to be perfect, but the app just doesn't start to fill the backup queue.
However manual selection upload works just fine. Regardless, that's not really related to this issue.

UPD: Issue was indeed my nginx reverse proxy. It didn't have enough dedicated storage to cache the POST request to immich with the video, and also I had to put client_max_body_size 8G into the config

@Iuckyone commented on GitHub (Sep 16, 2025): So after my last comment I've switched the Backup function off and on, restarted the app few times again and went to sleep. And for unknown reasons the app actually did manage to backup some part of the album ignoring those 2 videos through the night. Regarding @alextran1502 question - i don't use iCloud Drive and the videos are not corrupted. I suppose the issue may be related to my reverse proxy and the server side in general, as those 2 videos are actually the largest in my phone library. I'll look into that in a bit. I still don't understand how the app decides whether to upload the media. Everything seems to be perfect, but the app just doesn't start to fill the backup queue. However manual selection upload works just fine. Regardless, that's not really related to this issue. UPD: Issue was indeed my nginx reverse proxy. It didn't have enough dedicated storage to cache the POST request to immich with the video, and also I had to put `client_max_body_size 8G` into the config
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/immich#6668
No description provided.