iOS does nothing when upload bunch of media files #6276

Open
opened 2026-02-20 04:10:20 -05:00 by deekerman · 11 comments
Owner

Originally created by @ProOrange on GitHub (Aug 4, 2025).

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

  • Yes

The bug

I've created a shared link to an album with access to upload photos, sent it to a friend

Friend said that she was not able to upload all the photos/videos at once (she selected all the files, around 50-60 and confirmed selection), however she did uploaded all of them in batched of 10-12 files without issues

She is using iPhone 15 Pro, iOS 18.5, Safari

I personally don't have an iPhone, neither have access to any, so can't reproduce this bug, will appreciate if someone can confirm or deny this issue

The OS that Immich Server is running on

Ubuntu 25.04

Version of Immich Server

v1.137.3

Version of Immich Mobile App

v0.0.0

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}:/data
      - /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:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11
    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@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
      # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
      # 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
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    shm_size: 128mb
    restart: always

volumes:
  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=./path

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

# 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

# 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
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=password

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

Reproduction steps

  1. Create shared album link with upload access
  2. Open it using iPhone 15 Pro, Safari browser
  3. Try to upload a lot of photos and videos selecting all of them

Relevant log output


Additional information

No response

Originally created by @ProOrange on GitHub (Aug 4, 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've created a shared link to an album with access to upload photos, sent it to a friend Friend said that she was not able to upload all the photos/videos at once (she selected all the files, around 50-60 and confirmed selection), however she did uploaded all of them in batched of 10-12 files without issues She is using iPhone 15 Pro, iOS 18.5, Safari I personally don't have an iPhone, neither have access to any, so can't reproduce this bug, will appreciate if someone can confirm or deny this issue ### The OS that Immich Server is running on Ubuntu 25.04 ### Version of Immich Server v1.137.3 ### Version of Immich Mobile App v0.0.0 ### 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}:/data - /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:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11 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@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs # 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 - ${DB_DATA_LOCATION}:/var/lib/postgresql/data shm_size: 128mb restart: always volumes: 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=./path # The location where your database files are stored. Network shares are not supported for the database DB_DATA_LOCATION=./postgres # 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 # 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 # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=password # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich ``` ### Reproduction steps 1. Create shared album link with upload access 2. Open it using iPhone 15 Pro, Safari browser 3. Try to upload a lot of photos and videos selecting all of them ### Relevant log output ```shell ``` ### Additional information _No response_
Author
Owner

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

Can you try with the beta timeline? Thank you

@alextran1502 commented on GitHub (Aug 4, 2025): Can you try with the beta timeline? Thank you
Author
Owner

@ProOrange commented on GitHub (Aug 6, 2025):

@alextran1502 sorry, what is "beta timeline"?

@ProOrange commented on GitHub (Aug 6, 2025): @alextran1502 sorry, what is "beta timeline"?
Author
Owner

@muja commented on GitHub (Aug 18, 2025):

Having the same issue, using Safari on iOS the upload is often broken, it's a hit or miss really, I've shared a link to some friends and many of them had difficulties uploading. The following steps are pretty common:

  1. Click the upload button
  2. Click "Photo library"
  3. Select all your media that you want to upload
  4. Click "Add"
  5. nothing happens

E: Just reproduced this while signed out with Safari on iOS 18.5 with ~20 files

@muja commented on GitHub (Aug 18, 2025): Having the same issue, using Safari on iOS the upload is often broken, it's a hit or miss really, I've shared a link to some friends and many of them had difficulties uploading. The following steps are pretty common: 1. Click the upload button 2. Click "Photo library" 3. Select all your media that you want to upload 4. Click "Add" 5. nothing happens E: Just reproduced this while signed out with Safari on iOS 18.5 with ~20 files
Author
Owner

@adri1m64 commented on GitHub (Sep 25, 2025):

Hello, I have the same issue, sometimes i just wait 30 seconds

But sometimes after 5mn i just drop out.

@adri1m64 commented on GitHub (Sep 25, 2025): Hello, I have the same issue, sometimes i just wait 30 seconds But sometimes after 5mn i just drop out.
Author
Owner

@stefan1983 commented on GitHub (Oct 20, 2025):

I have the same issue uploading files from my DSLR directly via the upload button. It is browser independent, I've got this issue with Safari as well as with Chrome / Edge. When uploading a lot of files this is quite annoying since it is only possible to upload around 5-10 files each.

Is there some kind of upload size limit? My DSLR pictures are each 10-20 mbyte/s large and when uploading 7-8 pictures I run into this issue (100 mbyte/s limit?).

@stefan1983 commented on GitHub (Oct 20, 2025): I have the same issue uploading files from my DSLR directly via the upload button. It is browser independent, I've got this issue with Safari as well as with Chrome / Edge. When uploading a lot of files this is quite annoying since it is only possible to upload around 5-10 files each. Is there some kind of upload size limit? My DSLR pictures are each 10-20 mbyte/s large and when uploading 7-8 pictures I run into this issue (100 mbyte/s limit?).
Author
Owner

@muja commented on GitHub (Oct 20, 2025):

I noticed this is almost 100% reproducible if I select the "Most compatible" image format. I'm not sure what iOS is doing to determine compatibility, maybe it's trying to contact the server somehow to determine it -- anyway, it just hangs there. When I switch to "Current", it uploads immediately.

@muja commented on GitHub (Oct 20, 2025): I noticed this is almost 100% reproducible if I select the "Most compatible" image format. I'm not sure what iOS is doing to determine compatibility, maybe it's trying to contact the server somehow to determine it -- anyway, it just hangs there. When I switch to "Current", it uploads immediately.
Author
Owner

@stefan1983 commented on GitHub (Oct 20, 2025):

You mean the video transcoding setting?

@stefan1983 commented on GitHub (Oct 20, 2025): You mean the video transcoding setting?
Author
Owner

@putnam commented on GitHub (Dec 14, 2025):

Same problem here. Someone sent me a shared Immich album. I went to add photos to the album and used the photo chooser on iOS 26. After selecting a bunch of photos and videos, the blue checkbox to commit what you've chosen just doesn't do anything. At least not immediately.

There are several comments here using different workflows but they all seem similar. To be clear I am clicking the add images icon on Safari web, choosing "Photo Library", and using the iOS photo selector to pick a bunch of stuff and then hitting the blue circled checkbox on the top right.

I wouldn't be surprised if this is an iOS issue. The UI on the photo chooser has been nearly unusably broken for years. If you select a lot of videos but change your scroll position to pick more photos for example, you won't know that iOS is slowly transcoding the videos as the only indication is a little cheese wheel progress icon on the video thumbnails which may not be in your viewport at the time of committing your selection. If you have more than a couple of short videos this can really take a long time. The checkbox button (previously the "Add" button in iOS 18) reacts to touch with a button animation but doesn't actually do anything else while this is going on. It doesn't anything useful like popping up an indication iOS is busy transcoding videos. Unfortunately radars reporting this issue are still sitting. This is likely why @muja experienced quick unproblematic uploads as the chooser didn't block on compatibility transcodes. If you back out of the dialog while these transcodes are ongoing it just cancels the transcodes and nothing will be uploaded. Because there is no visual feedback of what's going on, people probably think the whole thing is broken and back out of the dialog. And when you carefully spent a few minutes picking your content for a shared album it's kinda frustrating all your work is lost.

@putnam commented on GitHub (Dec 14, 2025): Same problem here. Someone sent me a shared Immich album. I went to add photos to the album and used the photo chooser on iOS 26. After selecting a bunch of photos and videos, the blue checkbox to commit what you've chosen just doesn't do anything. At least not immediately. There are several comments here using different workflows but they all seem similar. To be clear I am clicking the add images icon on Safari web, choosing "Photo Library", and using the iOS photo selector to pick a bunch of stuff and then hitting the blue circled checkbox on the top right. I wouldn't be surprised if this is an iOS issue. The UI on the photo chooser has been nearly unusably broken for years. If you select a lot of videos but change your scroll position to pick more photos for example, you won't know that iOS is slowly transcoding the videos as the only indication is a little cheese wheel progress icon on the video thumbnails which may not be in your viewport at the time of committing your selection. If you have more than a couple of short videos this can really take a long time. The checkbox button (previously the "Add" button in iOS 18) reacts to touch with a button animation but doesn't actually do anything else while this is going on. It doesn't anything useful like popping up an indication iOS is busy transcoding videos. Unfortunately radars reporting this issue are still sitting. This is likely why @muja experienced quick unproblematic uploads as the chooser didn't block on compatibility transcodes. If you back out of the dialog while these transcodes are ongoing it just cancels the transcodes and nothing will be uploaded. Because there is no visual feedback of what's going on, people probably think the whole thing is broken and back out of the dialog. And when you carefully spent a few minutes picking your content for a shared album it's kinda frustrating all your work is lost.
Author
Owner

@alextran1502 commented on GitHub (Dec 14, 2025):

@putnam is this from Safari mobile browser?

@alextran1502 commented on GitHub (Dec 14, 2025): @putnam is this from Safari mobile browser?
Author
Owner

@putnam commented on GitHub (Dec 14, 2025):

Yes, in Safari. I did some debugging and research since my comment and it doesn't seem that there's any event Immich can catch to prevent the confusing behavior of the picker. It would be cool if there were a way to bypass iOS's insistence on transcoding videos, though.

@putnam commented on GitHub (Dec 14, 2025): Yes, in Safari. I did some debugging and research since my comment and it doesn't seem that there's any event Immich can catch to prevent the confusing behavior of the picker. It would be cool if there were a way to bypass iOS's insistence on transcoding videos, though.
Author
Owner

@irfanhakim-as commented on GitHub (Jan 31, 2026):

Facing same issue on latest v2.5.2, some people could upload fine (with or without Immich accounts, may or may not be relevant), some couldn't (in this case, with an account - again may or may not be relevant). This upload is done using mobile Safari, not logged in or anything and the shared link is ofc open to public for uploads.

When added from the photo picker on iOS, no feedback comes up in the shared link page. In one attempt, the photos did end up getting uploaded to the creator of the shared link's timeline/gallery, but not available in the shared link at all. In a re-attempt, it's not uploaded to either of them. Not exactly sure what's with this inconsistent behaviour.

Additional context: Format is set to 'Current' to retain HEIC format, instead of being converted to JPEG.

Edit: Fixed by uploading in smaller batches, not that it was a big one before (9 pics, 1 very short video).

@irfanhakim-as commented on GitHub (Jan 31, 2026): Facing same issue on latest v2.5.2, some people could upload fine (with or without Immich accounts, may or may not be relevant), some couldn't (in this case, with an account - again may or may not be relevant). This upload is done using mobile Safari, not logged in or anything and the shared link is ofc open to public for uploads. When added from the photo picker on iOS, no feedback comes up in the shared link page. In one attempt, the photos did end up getting uploaded to the creator of the shared link's timeline/gallery, but not available in the shared link at all. In a re-attempt, it's not uploaded to either of them. Not exactly sure what's with this inconsistent behaviour. Additional context: Format is set to 'Current' to retain HEIC format, instead of being converted to JPEG. Edit: _Fixed_ by uploading in smaller batches, not that it was a big one before (9 pics, 1 very short video).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/immich#6276
No description provided.