[beta] Failed to load thumbnail after iOS Photos reset #6869

Closed
opened 2026-02-05 12:36:05 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @FawenYo on GitHub (Aug 16, 2025).

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

  • Yes

The bug

I have already backed up all my photos to Immich. Recently, I turned off iCloud Photos in my iPhone settings to clear photos from my device without affecting the photos stored in iCloud. Then I re-enabled iCloud Photos to sync everything back down. After the sync completed, all photos reappeared on my phone but with significantly reduced local storage usage.
However, after the iCloud sync finished, I noticed that most photo thumbnails in the Immich app are not displaying properly (while they display correctly in the web version). The Immich app logs also show "Error loading thumbnail" messages.

image

The OS that Immich Server is running on

Ubuntu 22.10

Version of Immich Server

1.138.0 build.214

Version of Immich Mobile App

1.138.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

Mine is deployed with Helm chart

env:
  TZ: "GMT"
  REDIS_HOSTNAME: "redis-master.redis.svc.cluster.local"
  REDIS_PASSWORD: "${REDIS_PASSWORD}"
  DB_HOSTNAME: "postgresql-cluster-rw.postgres.svc.cluster.local"
  DB_USERNAME: "postgres"
  DB_DATABASE_NAME: "immich"
  # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance
  DB_PASSWORD: "${POSTGRESQL_PASSWORD}"
  IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}'

image:
  tag: release

immich:
  metrics:
    # Enabling this will create the service monitors needed to monitor immich with the prometheus operator
    enabled: true
  persistence:
    # Main data store for all photos shared between different components.
    library:
      # Automatically creating the library volume is not supported by this chart
      # You have to specify an existing PVC to use
      existingClaim: immich-storage

  # configuration is immich-config.json converted to yaml
  # ref: https://immich.app/docs/install/config-file/
  #
  configuration:
    {}
    # trash:
    #   enabled: false
    #   days: 30
    # storageTemplate:
    #   enabled: true
    #   template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}"

server:
  image:
    pullPolicy: Always
  ingress:
    main:
      enabled: true
      ingressClassName: nginx
      annotations:
        cert-manager.io/cluster-issuer: letsencrypt-prod
        external-dns.alpha.kubernetes.io/cloudflare-proxied: "false" # Disable Cloudflare proxying for performance
        nginx.ingress.kubernetes.io/ssl-redirect: "true"
        nginx.ingress.kubernetes.io/proxy-body-size: "0"  # Unlimited body size
      hosts:
        - host: immich.xxx
          paths:
            - path: "/"
      tls:
        - secretName: immich-tls
          hosts:
            - immich.xxx

# Immich components
machine-learning:
  enabled: true
  image:
    pullPolicy: Always
  persistence:
    cache:
      enabled: true
      size: 10Gi
      # Optional: Set this to pvc to avoid downloading the ML models every start.
      type: emptyDir
      accessMode: ReadWriteMany

Your .env content

Same as the previous content

Reproduction steps

  1. Disable iCloud Photos in iOS Settings
  2. Re-enable iCloud Photos and wait for sync to complete
  3. Open Immich app
  4. Observe thumbnail loading issues

Relevant log output

Message: Error loading thumbnail for IMG_7021.MP4

Details: PlatformException(__NSCFString, Asset 78468A5D-CA18-46EC-AEAD-A9BB0DAC418B/L0/001 is not found, null, null)

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      LocalThumbProvider._codec (package:immich_mobile/presentation/widgets/images/local_image_provider.dart:65)
<asynchronous suspension>
#3      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1027)
<asynchronous suspension>

Additional information

No response

Originally created by @FawenYo on GitHub (Aug 16, 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 have already backed up all my photos to Immich. Recently, I turned off iCloud Photos in my iPhone settings to clear photos from my device without affecting the photos stored in iCloud. Then I re-enabled iCloud Photos to sync everything back down. After the sync completed, all photos reappeared on my phone but with significantly reduced local storage usage. However, after the iCloud sync finished, I noticed that most photo thumbnails in the Immich app are not displaying properly (while they display correctly in the web version). The Immich app logs also show "Error loading thumbnail" messages. ![image](https://github.com/user-attachments/assets/bb392630-62e3-4eb1-8f8a-15bfa89d93b6) ### The OS that Immich Server is running on Ubuntu 22.10 ### Version of Immich Server 1.138.0 build.214 ### Version of Immich Mobile App 1.138.0 ### Platform with the issue - [ ] Server - [ ] Web - [x] Mobile ### Your docker-compose.yml content Mine is deployed with Helm chart ```YAML env: TZ: "GMT" REDIS_HOSTNAME: "redis-master.redis.svc.cluster.local" REDIS_PASSWORD: "${REDIS_PASSWORD}" DB_HOSTNAME: "postgresql-cluster-rw.postgres.svc.cluster.local" DB_USERNAME: "postgres" DB_DATABASE_NAME: "immich" # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance DB_PASSWORD: "${POSTGRESQL_PASSWORD}" IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' image: tag: release immich: metrics: # Enabling this will create the service monitors needed to monitor immich with the prometheus operator enabled: true persistence: # Main data store for all photos shared between different components. library: # Automatically creating the library volume is not supported by this chart # You have to specify an existing PVC to use existingClaim: immich-storage # configuration is immich-config.json converted to yaml # ref: https://immich.app/docs/install/config-file/ # configuration: {} # trash: # enabled: false # days: 30 # storageTemplate: # enabled: true # template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" server: image: pullPolicy: Always ingress: main: enabled: true ingressClassName: nginx annotations: cert-manager.io/cluster-issuer: letsencrypt-prod external-dns.alpha.kubernetes.io/cloudflare-proxied: "false" # Disable Cloudflare proxying for performance nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-body-size: "0" # Unlimited body size hosts: - host: immich.xxx paths: - path: "/" tls: - secretName: immich-tls hosts: - immich.xxx # Immich components machine-learning: enabled: true image: pullPolicy: Always persistence: cache: enabled: true size: 10Gi # Optional: Set this to pvc to avoid downloading the ML models every start. type: emptyDir accessMode: ReadWriteMany ``` ### Your .env content ```Shell Same as the previous content ``` ### Reproduction steps 1. Disable iCloud Photos in iOS Settings 2. Re-enable iCloud Photos and wait for sync to complete 3. Open Immich app 4. Observe thumbnail loading issues ### Relevant log output ```shell Message: Error loading thumbnail for IMG_7021.MP4 Details: PlatformException(__NSCFString, Asset 78468A5D-CA18-46EC-AEAD-A9BB0DAC418B/L0/001 is not found, null, null) 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 LocalThumbProvider._codec (package:immich_mobile/presentation/widgets/images/local_image_provider.dart:65) <asynchronous suspension> #3 MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:1027) <asynchronous suspension> ``` ### Additional information _No response_
OVERLORD added the 📱mobile label 2026-02-05 12:36:05 +03:00
Author
Owner

@FawenYo commented on GitHub (Aug 16, 2025):

It seems that I have to reset my Immich app... but that way I have to again spend a lot of time hashing my photos

@FawenYo commented on GitHub (Aug 16, 2025): It seems that I have to reset my Immich app... but that way I have to again spend a lot of time hashing my photos
Author
Owner

@alextran1502 commented on GitHub (Aug 16, 2025):

Logout and log in or you can use the beta timeline

@alextran1502 commented on GitHub (Aug 16, 2025): Logout and log in or you can use the beta timeline
Author
Owner

@FawenYo commented on GitHub (Aug 16, 2025):

Hi @alextran1502, I've toggled on the beta timeline feature. For the logout and re-login method, I haven't tried as I've reset my Immich app, so I guess I have to take some time hashing all items again, then try to reproduce this error to validate if the solution is working or not.

@FawenYo commented on GitHub (Aug 16, 2025): Hi @alextran1502, I've toggled on the beta timeline feature. For the logout and re-login method, I haven't tried as I've reset my Immich app, so I guess I have to take some time hashing all items again, then try to reproduce this error to validate if the solution is working or not.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#6869