Album and selected media downloads fail (>10 MB) #6334

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

Originally created by @OnixGH on GitHub (Jun 22, 2025).

EDIT: see https://github.com/immich-app/immich/issues/19438 for a much more precise description including better reproduction steps.

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

  • Yes

The bug

Clicking the download button in an album >10 MB results in an (almost immediate) error rather than a downloaded zip file. The same happens if selecting multiple assets in the album which together are >10 MB. This happens using a direct connection to the immich_server (no reverse proxy).

N.B. The download does work if the selection has less than 10 MB worth of assets in it OR if you select just one asset (which bypasses zip) -- e.g. an asset of 300 MB downloads fine.

Image

The OS that Immich Server is running on

Debian GNU/Linux 12 (bookworm) on Raspberry Pi 5, 8 GB

Version of Immich Server

v1.135.3

Version of Immich Mobile App

v1.135.3

Platform with the issue

  • Server
  • Web
  • Mobile

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}:/usr/src/app/upload
      - /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:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177
    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
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
      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
      - pgdata:/var/lib/postgresql/data
    restart: always

volumes:
  pgdata:
  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/raid/immich/data

# The location where your database files are stored. Network shares are not supported for the database
#DB_DATA_LOCATION=./postgres
#DB_DATA_LOCATION=/var/lib/postgresql/data

# 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=Etc/UTC
TZ=<redacted>

# 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
DB_PASSWORD=<redacted>

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

Reproduction steps

  1. On the immich web interface, when viewing an album (>10MB), click download button
  2. Error
  3. Alternatively, select multiple assets in the album, together adding up to >10 MB
  4. Error

Relevant log output

- docker logs immich_server doesn't show anything new when the error occurs
- browser console log:
[handleError]: Unable to download files ProgressEvent {isTrusted: true, lengthComputable: false, loaded: 0, total: 0, type: 'error', …}
COGu8Gqi.js:1 
 POST http://localhost:8888/api/download/archive?key=<redacted> net::ERR_FAILED 200 (OK)

Additional information

  • drive on which immich is running has 20 GB free
  • UPLOAD_LOCATION points to a mounted volume with 620 GB free
  • tried chrome & vivaldi browsers
Originally created by @OnixGH on GitHub (Jun 22, 2025). ### EDIT: see https://github.com/immich-app/immich/issues/19438 for a much more precise description including better reproduction steps. ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug Clicking the download button in an album >10 MB results in an (almost immediate) error rather than a downloaded zip file. The same happens if selecting multiple assets in the album which together are >10 MB. This happens using a direct connection to the immich_server (no reverse proxy). N.B. The download does work if the selection has less than 10 MB worth of assets in it OR if you select just one asset (which bypasses zip) -- e.g. an asset of 300 MB downloads fine. ![Image](https://github.com/user-attachments/assets/f1477079-3a93-41f8-ad5e-9e20887ca7da) ### The OS that Immich Server is running on Debian GNU/Linux 12 (bookworm) on Raspberry Pi 5, 8 GB ### Version of Immich Server v1.135.3 ### Version of Immich Mobile App v1.135.3 ### Platform with the issue - [ ] Server - [x] Web - [ ] Mobile ### 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}:/usr/src/app/upload - /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:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177 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 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' 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 - pgdata:/var/lib/postgresql/data restart: always volumes: pgdata: 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/raid/immich/data # The location where your database files are stored. Network shares are not supported for the database #DB_DATA_LOCATION=./postgres #DB_DATA_LOCATION=/var/lib/postgresql/data # 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=Etc/UTC TZ=<redacted> # 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 DB_PASSWORD=<redacted> # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich ``` ### Reproduction steps 1. On the immich web interface, when viewing an album (>10MB), click download button 2. Error 3. Alternatively, select multiple assets in the album, together adding up to >10 MB 4. Error ### Relevant log output ```shell - docker logs immich_server doesn't show anything new when the error occurs - browser console log: [handleError]: Unable to download files ProgressEvent {isTrusted: true, lengthComputable: false, loaded: 0, total: 0, type: 'error', …} COGu8Gqi.js:1 POST http://localhost:8888/api/download/archive?key=<redacted> net::ERR_FAILED 200 (OK) ``` ### Additional information - drive on which immich is running has 20 GB free - UPLOAD_LOCATION points to a mounted volume with 620 GB free - tried chrome & vivaldi browsers
Author
Owner

@bo0tzz commented on GitHub (Jun 22, 2025):

I can't reproduce this, this 200MB album from the demo downloads without any issues. Are you certain there's nothing at all inbetween?

@bo0tzz commented on GitHub (Jun 22, 2025): I can't reproduce this, [this](https://demo.immich.app/albums/894e7928-5476-45c2-929a-3abc48a67b5d) 200MB album from the demo downloads without any issues. Are you certain there's nothing at all inbetween?
Author
Owner

@OnixGH commented on GitHub (Jun 22, 2025):

Thanks for the quick reply! I have the same error with your album link when testing from the same laptop with chrome, edge and vivaldi, so I tested further with this information..

It looks like it's related to the free space on the Windows (10 home) drive: with 4.09 GB free the download from your album errors out at about 50%, and with 4.49 GB free it completes successfully.

This is surprising because:

  • 4+ GB on the windows drive should be more than enough for the 200 MB download (free space also doesn't go below 4 GB during the download)
  • The download dir is actually set to a different drive which has 14 GB free
    N.B. Firefox doesn't error out, so some kind of chromium related issue?

On the immich side the error doesn't mention anything about drive space being involved, and why it occurs when there appears to be more than enough space to store the download (especially in the 10 MB case).

@OnixGH commented on GitHub (Jun 22, 2025): Thanks for the quick reply! I have the same error with your album link when testing from the same laptop with chrome, edge and vivaldi, so I tested further with this information.. It looks like it's related to the free space on the Windows (10 home) drive: with 4.09 GB free the download from your album errors out at about 50%, and with 4.49 GB free it completes successfully. This is surprising because: - 4+ GB on the windows drive should be more than enough for the 200 MB download (free space also doesn't go below 4 GB during the download) - The download dir is actually set to a different drive which has 14 GB free N.B. Firefox doesn't error out, so some kind of chromium related issue? On the immich side the error doesn't mention anything about drive space being involved, and why it occurs when there appears to be more than enough space to store the download (especially in the 10 MB case).
Author
Owner

@bo0tzz commented on GitHub (Jun 22, 2025):

This doesn't seem like an Immich issue to me.

@bo0tzz commented on GitHub (Jun 22, 2025): This doesn't seem like an Immich issue to me.
Author
Owner

@OnixGH commented on GitHub (Jun 22, 2025):

It's an issue that specifically only occurs with Immich in Chromium browsers, and only with multi-select downloads. However, the issue description is unclear so I'll open one that is more to the point.

@OnixGH commented on GitHub (Jun 22, 2025): It's an issue that specifically only occurs with Immich in Chromium browsers, and only with multi-select downloads. However, the issue description is unclear so I'll open one that is more to the point.
Author
Owner

@bo0tzz commented on GitHub (Jun 23, 2025):

I still don't see how this could be Immich's fault, but if it is then it probably lumps in with #14725.

@bo0tzz commented on GitHub (Jun 23, 2025): I still don't see how this could be Immich's fault, but if it is then it probably lumps in with #14725.
Author
Owner

@Lutz034 commented on GitHub (Dec 29, 2025):

I stumbled over this (although with a 4gb Folder) but maybe someone comes along with similar problems so i wanted to share my findings. For me it came down to the reverse proxy timeout which was set shorter then my server needed to create the zip file for download so it came back too late and failed. The solution was as easy as adding a longer timeout in my reverse proxy.

@Lutz034 commented on GitHub (Dec 29, 2025): I stumbled over this (although with a 4gb Folder) but maybe someone comes along with similar problems so i wanted to share my findings. For me it came down to the reverse proxy timeout which was set shorter then my server needed to create the zip file for download so it came back too late and failed. The solution was as easy as adding a longer timeout in my reverse proxy.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#6334