[BUG] Google motion pictures can't be downloaded back to phone after deleting them on the phone #1229

Closed
opened 2026-02-05 00:57:19 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @maskimfr on GitHub (Aug 15, 2023).

The bug

A motion picture taken with Google Camera app, backed up using immich Android application, then deleted on the device (but not on immich server), can't be downloaded again on the device using immich.
The following error message is shown for a few seconds: "Download error"

I could not find any error message in Android app logs (even with log level set to "FINEST"), or in docker logs (even with LOG_LEVEL set to "verbose" or "debug" for server and microservices)

The picture can be downloaded through the web app. In this case, 2 files are downloaded : the original .jpg file and the .mp4 that was extraceted by immich.

I reproduced the issue on a test instance with default docker-compose.yml.

The OS that Immich Server is running on

Arch

Version of Immich Server

v1.72.2

Version of Immich Mobile App

1.72.2 build.95

Platform with the issue

  • Server
  • Web
  • Mobile

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}
    command: [ "start.sh", "immich" ]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - .env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.yml
    #   service: hwaccel
    command: [ "start.sh", "microservices" ]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - .env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  immich-web:
    container_name: immich_web
    image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
    env_file:
      - .env
    restart: always

  typesense:
    container_name: immich_typesense
    image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
    environment:
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_DATA_DIR=/data
    volumes:
      - tsdata:/data
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
    restart: always

  database:
    container_name: immich_postgres
    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

  immich-proxy:
    container_name: immich_proxy
    image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
    environment:
      # Make sure these values get passed through from the env file
      - IMMICH_SERVER_URL
      - IMMICH_WEB_URL
    ports:
      - 2283:8080
    depends_on:
      - immich-server
      - immich-web
    restart: always

volumes:
  pgdata:
  model-cache:
  tsdata:

Your .env content

LOG_LEVEL=verbose
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=xxxxxxxxxxxxxxxxx
DB_DATABASE_NAME=immich

UPLOAD_LOCATION=/immich-uploads

TYPESENSE_API_KEY=xxxxxxxxxxxxxxxxx

Reproduction steps

1. Take a picture with Google Camera, make sure it's a motion picture
2. Check that the picture is backed up by immich
3. Delete the picture using another app (File browser or Gallery app)
4. Go back to immich app
5. Open the picture, and touch the download button on the top (cloud with a down arrow inside it)

Expected result:
The picture is downloaded on the device.

Actual result:
Error message "Download Failed" shown for a few seconds and the picture is not downloaded.

Additional information

No response

Originally created by @maskimfr on GitHub (Aug 15, 2023). ### The bug A motion picture taken with Google Camera app, backed up using immich Android application, then deleted on the device (but not on immich server), can't be downloaded again on the device using immich. The following error message is shown for a few seconds: "Download error" I could not find any error message in Android app logs (even with log level set to "FINEST"), or in docker logs (even with LOG_LEVEL set to "verbose" or "debug" for server and microservices) The picture can be downloaded through the web app. In this case, 2 files are downloaded : the original .jpg file and the .mp4 that was extraceted by immich. I reproduced the issue on a test instance with default docker-compose.yml. ### The OS that Immich Server is running on Arch ### Version of Immich Server v1.72.2 ### Version of Immich Mobile App 1.72.2 build.95 ### Platform with the issue - [ ] Server - [ ] Web - [X] Mobile ### Your docker-compose.yml content ```YAML version: "3.8" services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "immich" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env depends_on: - redis - database - typesense restart: always immich-microservices: container_name: immich_microservices image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # extends: # file: hwaccel.yml # service: hwaccel command: [ "start.sh", "microservices" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env depends_on: - redis - database - typesense restart: always immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - model-cache:/cache env_file: - .env restart: always immich-web: container_name: immich_web image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release} env_file: - .env restart: always typesense: container_name: immich_typesense image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd environment: - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - TYPESENSE_DATA_DIR=/data volumes: - tsdata:/data restart: always redis: container_name: immich_redis image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 restart: always database: container_name: immich_postgres image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - pgdata:/var/lib/postgresql/data restart: always immich-proxy: container_name: immich_proxy image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release} environment: # Make sure these values get passed through from the env file - IMMICH_SERVER_URL - IMMICH_WEB_URL ports: - 2283:8080 depends_on: - immich-server - immich-web restart: always volumes: pgdata: model-cache: tsdata: ``` ### Your .env content ```Shell LOG_LEVEL=verbose DB_HOSTNAME=immich_postgres DB_USERNAME=postgres DB_PASSWORD=xxxxxxxxxxxxxxxxx DB_DATABASE_NAME=immich UPLOAD_LOCATION=/immich-uploads TYPESENSE_API_KEY=xxxxxxxxxxxxxxxxx ``` ### Reproduction steps ```bash 1. Take a picture with Google Camera, make sure it's a motion picture 2. Check that the picture is backed up by immich 3. Delete the picture using another app (File browser or Gallery app) 4. Go back to immich app 5. Open the picture, and touch the download button on the top (cloud with a down arrow inside it) Expected result: The picture is downloaded on the device. Actual result: Error message "Download Failed" shown for a few seconds and the picture is not downloaded. ``` ### Additional information _No response_
OVERLORD added the 📱mobile label 2026-02-05 00:57:19 +03:00
Author
Owner

@alextran1502 commented on GitHub (Aug 15, 2023):

Thank you for reporting. I think this issue is because we treat motion photo similar to iOS LivePhotos so when download the file, the app tries to merge the motion and the video parts together.

@alextran1502 commented on GitHub (Aug 15, 2023): Thank you for reporting. I think this issue is because we treat motion photo similar to iOS LivePhotos so when download the file, the app tries to merge the motion and the video parts together.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#1229