[BUG] Attempting to download a live photo fails on iOS #1513

Closed
opened 2026-02-05 02:11:47 +03:00 by OVERLORD · 2 comments
Owner

Originally created by @Ashton210z on GitHub (Oct 26, 2023).

The bug

Downloading live photos on the mobile app seems to throw a "Download error". Downloading a regular photo works fine.
This seems to occur whether it is my phone that i've uploaded the photo from, or another iOS user in a shared library.
Live photo downloads on a PC from the immich server just fine
Attempted to access the webpage with the browser on iOS, downloads .heic file but .mov file fails.

The OS that Immich Server is running on

DSM/Synology

Version of Immich Server

1.82.1

Version of Immich Mobile App

v1.82.0 build.121

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

version: "3.9"
services:
  immich-redis:
    image: redis
    container_name: Immich-REDIS
    hostname: immich-redis
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping || exit 1"]
    user: 1027:100
    environment:
      - TZ=America/Los_Angeles
    volumes:
      - /volume1/docker/immich/redis:/data
    restart: on-failure:5

  immich-db:
    image: postgres
    container_name: Immich-DB
    hostname: immich-db
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "immich", "-U", "immichuser"]
      interval: 10s
      timeout: 5s
      retries: 5
    user: 1027:100
    volumes:
      - /volume1/docker/immich/db:/var/lib/postgresql/data
    environment:
      - TZ=America/Los_Angeles
      - POSTGRES_DB={DB_DATABASE_NAME}
      - POSTGRES_USER={DB_USERNAME}
      - POSTGRES_PASSWORD={DB_PASSWORD}
    restart: on-failure:5

  immich-server:
    image: altran1502/immich-server:release
    command: ["start-server.sh"]
    container_name: Immich-SERVER
    hostname: immich-server
    user: 1027:100
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    volumes:
      - /volume1/docker/immich/upload:/usr/src/app/upload
    restart: on-failure:5
    depends_on:
      immich-redis:
        condition: service_healthy
      immich-db:
        condition: service_started
      typesense:
        condition: service_started

  immich-microservices:
    image: altran1502/immich-server:release

    command: ["start-microservices.sh"]
    container_name: Immich-MICROSERVICES
    hostname: immich-microservices
    user: 1027:100
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    volumes:
      - /volume1/docker/immich/upload:/usr/src/app/upload
      - /volume1/docker/immich/micro:/usr/src/app/.reverse-geocoding-dump
    restart: on-failure:5
    depends_on:
      immich-redis:
        condition: service_healthy
      immich-db:
        condition: service_started
      typesense:
        condition: service_started

  immich-machine-learning:
    image: altran1502/immich-machine-learning:release
    container_name: Immich-LEARNING
    hostname: immich-machine-learning
    user: 1027:100
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    volumes:
      - /volume1/docker/immich/upload:/usr/src/app/upload
      - /volume1/docker/immich/cache:/cache
    restart: on-failure:5
    depends_on:
      immich-db:
        condition: service_started

  immich-web:
    image: altran1502/immich-web:release
    container_name: Immich-WEB
    hostname: immich-web
    user: 1027:100
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1
    env_file:
      - stack.env
    restart: on-failure:5
    depends_on:
      - immich-server

  immich-proxy:
    image: altran1502/immich-proxy:release
    logging:
      driver: none
    container_name: Immich-PROXY
    hostname: immich-proxy
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: curl -f http://localhost:8080/ || exit 1
    environment:
      - IMMICH_SERVER_URL=http://immich-server:3001
      - IMMICH_WEB_URL=http://immich-web:3000
    ports:
      - 8212:8080
    restart: on-failure:5
    depends_on:
      - immich-server
      
  typesense:
    container_name: Immich-TYPESENSE
    image: typesense/typesense:0.25.0
    environment:
      - TYPESENSE_API_KEY=dp66t8G138VoDQnZZ0fDHR8LyFX7D1x0
      - TYPESENSE_DATA_DIR=/data
    logging:
      driver: none
    volumes:
      - /volume1/docker/immich/typesense:/data
    restart: on-failure:5

Your .env content

NODE_ENV=production
TZ=America/Los_Angeles
TYPESENSE_API_KEY=(redacted)
DB_HOSTNAME=immich-db
DB_USERNAME=(redacted)
DB_PASSWORD=(redacted)
DB_DATABASE_NAME=(redacted)
REDIS_HOSTNAME=immich-redis
LOG_LEVEL=simple
JWT_SECRET=(redacted)
DISABLE_REVERSE_GEOCODING=false
REVERSE_GEOCODING_PRECISION=3
PUBLIC_LOGIN_PAGE_MESSAGE=Hi
IMMICH_WEB_URL=http://immich-web:3000
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003

Reproduction steps

1. Upload any live photo to immich
2. Delete photo from device
3. Refresh library by dragging down, attempt to download the photo
4. "Download error"
...
Alternatively, attempt to download a live photo shared from a library of another immich user, same "Download error" occurs

Additional information

No response

Originally created by @Ashton210z on GitHub (Oct 26, 2023). ### The bug Downloading live photos on the mobile app seems to throw a "Download error". Downloading a regular photo works fine. This seems to occur whether it is my phone that i've uploaded the photo from, or another iOS user in a shared library. Live photo downloads on a PC from the immich server just fine Attempted to access the webpage with the browser on iOS, downloads .heic file but .mov file fails. ### The OS that Immich Server is running on DSM/Synology ### Version of Immich Server 1.82.1 ### Version of Immich Mobile App v1.82.0 build.121 ### Platform with the issue - [ ] Server - [ ] Web - [X] Mobile ### Your docker-compose.yml content ```YAML version: "3.9" services: immich-redis: image: redis container_name: Immich-REDIS hostname: immich-redis security_opt: - no-new-privileges:true healthcheck: test: ["CMD-SHELL", "redis-cli ping || exit 1"] user: 1027:100 environment: - TZ=America/Los_Angeles volumes: - /volume1/docker/immich/redis:/data restart: on-failure:5 immich-db: image: postgres container_name: Immich-DB hostname: immich-db security_opt: - no-new-privileges:true healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "immich", "-U", "immichuser"] interval: 10s timeout: 5s retries: 5 user: 1027:100 volumes: - /volume1/docker/immich/db:/var/lib/postgresql/data environment: - TZ=America/Los_Angeles - POSTGRES_DB={DB_DATABASE_NAME} - POSTGRES_USER={DB_USERNAME} - POSTGRES_PASSWORD={DB_PASSWORD} restart: on-failure:5 immich-server: image: altran1502/immich-server:release command: ["start-server.sh"] container_name: Immich-SERVER hostname: immich-server user: 1027:100 security_opt: - no-new-privileges:true env_file: - stack.env volumes: - /volume1/docker/immich/upload:/usr/src/app/upload restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started typesense: condition: service_started immich-microservices: image: altran1502/immich-server:release command: ["start-microservices.sh"] container_name: Immich-MICROSERVICES hostname: immich-microservices user: 1027:100 security_opt: - no-new-privileges:true env_file: - stack.env volumes: - /volume1/docker/immich/upload:/usr/src/app/upload - /volume1/docker/immich/micro:/usr/src/app/.reverse-geocoding-dump restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started typesense: condition: service_started immich-machine-learning: image: altran1502/immich-machine-learning:release container_name: Immich-LEARNING hostname: immich-machine-learning user: 1027:100 security_opt: - no-new-privileges:true env_file: - stack.env volumes: - /volume1/docker/immich/upload:/usr/src/app/upload - /volume1/docker/immich/cache:/cache restart: on-failure:5 depends_on: immich-db: condition: service_started immich-web: image: altran1502/immich-web:release container_name: Immich-WEB hostname: immich-web user: 1027:100 security_opt: - no-new-privileges:true healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1 env_file: - stack.env restart: on-failure:5 depends_on: - immich-server immich-proxy: image: altran1502/immich-proxy:release logging: driver: none container_name: Immich-PROXY hostname: immich-proxy security_opt: - no-new-privileges:true healthcheck: test: curl -f http://localhost:8080/ || exit 1 environment: - IMMICH_SERVER_URL=http://immich-server:3001 - IMMICH_WEB_URL=http://immich-web:3000 ports: - 8212:8080 restart: on-failure:5 depends_on: - immich-server typesense: container_name: Immich-TYPESENSE image: typesense/typesense:0.25.0 environment: - TYPESENSE_API_KEY=dp66t8G138VoDQnZZ0fDHR8LyFX7D1x0 - TYPESENSE_DATA_DIR=/data logging: driver: none volumes: - /volume1/docker/immich/typesense:/data restart: on-failure:5 ``` ### Your .env content ```Shell NODE_ENV=production TZ=America/Los_Angeles TYPESENSE_API_KEY=(redacted) DB_HOSTNAME=immich-db DB_USERNAME=(redacted) DB_PASSWORD=(redacted) DB_DATABASE_NAME=(redacted) REDIS_HOSTNAME=immich-redis LOG_LEVEL=simple JWT_SECRET=(redacted) DISABLE_REVERSE_GEOCODING=false REVERSE_GEOCODING_PRECISION=3 PUBLIC_LOGIN_PAGE_MESSAGE=Hi IMMICH_WEB_URL=http://immich-web:3000 IMMICH_SERVER_URL=http://immich-server:3001 IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 ``` ### Reproduction steps ```bash 1. Upload any live photo to immich 2. Delete photo from device 3. Refresh library by dragging down, attempt to download the photo 4. "Download error" ... Alternatively, attempt to download a live photo shared from a library of another immich user, same "Download error" occurs ``` ### Additional information _No response_
Author
Owner

@zjs2k commented on GitHub (Nov 9, 2023):

I am having the exact issue: take a live photo with phone camera, confirm the photo sync to immich, delete photo with another app on phone (Samsung Gallery), photo disappears from immich app, refresh immich library on the phone by dragging down, try to download the photo and get "Download error".

There is no download issue if it's a regular photo, which is just a jpg file (live photo is jpg + mov).
If a photo deleted from immich app, it's deleted from both phone and server, as I expected it.

@zjs2k commented on GitHub (Nov 9, 2023): I am having the exact issue: take a live photo with phone camera, confirm the photo sync to immich, delete photo with another app on phone (Samsung Gallery), photo disappears from immich app, refresh immich library on the phone by dragging down, try to download the photo and get "Download error". There is no download issue if it's a regular photo, which is just a jpg file (live photo is jpg + mov). If a photo deleted from immich app, it's deleted from both phone and server, as I expected it.
Author
Owner

@jrasm91 commented on GitHub (Sep 4, 2024):

I believe this issue has been fixed. Let me know if it hasn't and I can re-open it with updated information.

@jrasm91 commented on GitHub (Sep 4, 2024): I believe this issue has been fixed. Let me know if it hasn't and I can re-open it with updated information.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#1513