immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
53.35k stars 2.82k forks source link

iOS iCloud Download Progress Bar Shows 0% Numerically While Showing 100% Visually #10957

Closed Orbitally closed 2 weeks ago

Orbitally commented 4 months ago

The bug

In the mobile app, the numerical progress counter for an asset being downloaded from iCloud will occasionally show 0% instead of 100% even though the visual progress bar is full.

https://github.com/immich-app/immich/assets/70914399/5bce26c8-88b0-48b5-8755-df7792762133

The OS that Immich Server is running on

iOS 17

Version of Immich Server

v1.107.2

Version of Immich Mobile App

v1.107.1 Build 162

Platform with the issue

Your docker-compose.yml content

version: "3.8"
services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /media/truenasMedia:/mnt/media/theMedia:ro
      - /media/ASUSTOR_Media:/mnt/media/ASUSTOR_Media:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    networks:
      - immich
      - proxy
    depends_on:
      - redis
      - database
    restart: always
    environment: []
  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.yml
    #   service: hwaccel
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    networks:
      - immich
    restart: always
    environment: []
  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
    restart: always
    networks:
      - immich
    environment: []
  database:
    container_name: immich_postgres
    image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    networks:
      - immich
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always
  backup:
    container_name: immich_db_dumper
    image: prodrigestivill/postgres-backup-local
    env_file:
      - .env
    environment:
      POSTGRES_HOST: database
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      SCHEDULE: "@daily"
      BACKUP_NUM_KEEP: 7
      BACKUP_DIR: /db_dumps
    networks:
      - immich
    volumes:
      - ./db_dumps:/db_dumps
    depends_on:
      - database
volumes:
  pgdata: null
  model-cache: null
networks:
  immich: null
  proxy:
    external: true

Your .env content

###################################################################################
# Database
###################################################################################

DB_HOSTNAME=xxx
DB_USERNAME=xxx
DB_PASSWORD=xxx
DB_DATABASE_NAME=xxx

# Optional Database settings:
# DB_PORT=5432

###################################################################################
# Redis
###################################################################################

REDIS_HOSTNAME=immich_redis

# Optional Redis settings:

# Note: these parameters are not automatically passed to the Redis Container
# to do so, please edit the docker-compose.yml file as well. Redis is not configured
# via environment variables, only redis.conf or the command line

# REDIS_PORT=6379
# REDIS_DBINDEX=0
# REDIS_PASSWORD=
# REDIS_SOCKET=

###################################################################################
# Upload File Location
#
# This is the location where uploaded files are stored.
###################################################################################

UPLOAD_LOCATION="xxx"

###################################################################################
# Log message level - [simple|verbose]
###################################################################################

LOG_LEVEL=log

###################################################################################
# Typesense
###################################################################################
# TYPESENSE_ENABLED=false
TYPESENSE_API_KEY=xxx
# TYPESENSE_HOST: typesense
# TYPESENSE_PORT: 8108
# TYPESENSE_PROTOCOL: http

###################################################################################
# Reverse Geocoding
#
# Reverse geocoding is done locally which has a small impact on memory usage
# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
# This ranges from 0-3 with 3 being the most precise
# 3 - Cities > 500 population: ~200MB RAM
# 2 - Cities > 1000 population: ~150MB RAM
# 1 - Cities > 5000 population: ~80MB RAM
# 0 - Cities > 15000 population: ~40MB RAM
####################################################################################

# DISABLE_REVERSE_GEOCODING=false
# REVERSE_GEOCODING_PRECISION=3

####################################################################################
# WEB - Optional
#
# Custom message on the login page, should be written in HTML form.
# For example:
# PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>"
####################################################################################

PUBLIC_LOGIN_PAGE_MESSAGE="Backing up camera rolls without needing to pay Apple. Ha!"

IMMICH_WEB_URL=http://immich-web:3000

IMMICH_SERVER_URL=http://immich-server:3001

###################################################################################
# Immich Version - Optional
#
# This allows all immich docker images to be pinned to a specific version. By default,
# the version is "release" but could be a specific version, like "v1.59.0".
###################################################################################

IMMICH_VERSION=release

Reproduction steps

1. Open up the mobile app with pictures which need to be both uploaded to Immich as well as downloaded from iCloud to do so
2. Start the upload and watch the numerical percentage counter for the iCloud download progress
3. Occasionally, the bar will complete and while sitting there for a couple seconds instead of showing 100% it will show 0%

Relevant log output

No response

Additional information

This is a super minor issue but figured I'd make it known nonetheless!

mertalev commented 2 weeks ago

Should be fixed with #14171.