immich icon indicating copy to clipboard operation
immich copied to clipboard

iOS App Stuck Uploading

Open Curtisjk opened this issue 1 year ago • 4 comments

The bug

When uploading all my photos using the iOS App the upload appears to have got stuck, but does not give any information on the file, only a date (4 October 2020):

IMG_5366

I have checked and all photos from 4 October 2020 have been successfully uploaded. Moving all photos from this date to trash (to exclude them from the upload) results in the same behaviour.

Any help on diagnosing this issue would be much appreciated!

The OS that Immich Server is running on

Unraid 6.12.10

Version of Immich Server

1.105.1

Version of Immich Mobile App

1.105.0 build 157

Platform with the issue

  • [ ] Server
  • [ ] Web
  • [X] Mobile

Your docker-compose.yml content

#
# WARNING: 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}
    command: ['start.sh', 'immich']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    networks:
      - immich
      - proxy
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    command: ['start.sh', 'microservices']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    networks:
      - immich
    env_file:
      - .env
    devices:
      - /dev/dri:/dev/dri
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] 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, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    networks:
      - immich
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
    networks:
      - immich
    restart: always

  database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    networks:
      - immich
    restart: always
    command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]

volumes:
  model-cache:

networks:
  immich:
    name: immich
  proxy:
    name: proxy
    external: true

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/user/immich
# The location where your database files are stored
DB_DATA_LOCATION=/mnt/cache/appdata/immich/postgres

# 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. Use immich app to upload photos

Relevant log output

No response

Additional information

No response

Curtisjk avatar May 29 '24 20:05 Curtisjk

I have a very similar issue. The initial problem was that my PostgreSQL container needed more shared memory, I could fix this easily adding shm_size: 2g

However, now every time I restart the app to re-trigger the backup I can observe this new error in the container logs:

2024-06-03 00:55:47.975 UTC [102] ERROR:  invalid DSA memory alloc request size 1811939328
2024-06-03 00:55:47.975 UTC [102] STATEMENT:  SELECT "asset"."id" AS "asset_id", "asset"."deviceAssetId" AS "asset_deviceAssetId", "asset"."ownerId" AS "asset_ownerId", "asset"."libraryId" AS "asset_libraryId", "asset"."deviceId" AS "asset_deviceId", "asset"."type" AS "asset_type", "asset"."originalPath" AS "asset_originalPath", "asset"."previewPath" AS "asset_previewPath", "asset"."thumbnailPath" AS "asset_thumbnailPath", "asset"."thumbhash" AS "asset_thumbhash", "asset"."encodedVideoPath" AS "asset_encodedVideoPath", "asset"."createdAt" AS "asset_createdAt", "asset"."updatedAt" AS "asset_updatedAt", "asset"."deletedAt" AS "asset_deletedAt", "asset"."fileCreatedAt" AS "asset_fileCreatedAt", "asset"."localDateTime" AS "asset_localDateTime", "asset"."fileModifiedAt" AS "asset_fileModifiedAt", "asset"."isFavorite" AS "asset_isFavorite", "asset"."isArchived" AS "asset_isArchived", "asset"."isExternal" AS "asset_isExternal", "asset"."isOffline" AS "asset_isOffline", "asset"."checksum" AS "asset_checksum", "asset"."duration" AS "asset_duration", "asset"."isVisible" AS "asset_isVisible", "asset"."livePhotoVideoId" AS "asset_livePhotoVideoId", "asset"."originalFileName" AS "asset_originalFileName", "asset"."sidecarPath" AS "asset_sidecarPath", "asset"."stackId" AS "asset_stackId", "exifInfo"."assetId" AS "exifInfo_assetId", "exifInfo"."description" AS "exifInfo_description", "exifInfo"."exifImageWidth" AS "exifInfo_exifImageWidth", "exifInfo"."exifImageHeight" AS "exifInfo_exifImageHeight", "exifInfo"."fileSizeInByte" AS "exifInfo_fileSizeInByte", "exifInfo"."orientation" AS "exifInfo_orientation", "exifInfo"."dateTimeOriginal" AS "exifInfo_dateTimeOriginal", "exifInfo"."modifyDate" AS "exifInfo_modifyDate", "exifInfo"."timeZone" AS "exifInfo_timeZone", "exifInfo"."latitude" AS "exifInfo_latitude", "exifInfo"."longitude" AS "exifInfo_longitude", "exifInfo"."projectionType" AS "exifInfo_projectionType", "exifInfo"."city" AS "exifInfo_city", "exifInfo"."livePhotoCID" AS "exifInfo_livePhotoCID", "exifInfo"."autoStackId" AS "exifInfo_autoStackId", "exifInfo"."state" AS "exifInfo_state", "exifInfo"."country" AS "exifInfo_country", "exifInfo"."make" AS "exifInfo_make", "exifInfo"."model" AS "exifInfo_model", "exifInfo"."lensModel" AS "exifInfo_lensModel", "exifInfo"."fNumber" AS "exifInfo_fNumber", "exifInfo"."focalLength" AS "exifInfo_focalLength", "exifInfo"."iso" AS "exifInfo_iso", "exifInfo"."exposureTime" AS "exifInfo_exposureTime", "exifInfo"."profileDescription" AS "exifInfo_profileDescription", "exifInfo"."colorspace" AS "exifInfo_colorspace", "exifInfo"."bitsPerSample" AS "exifInfo_bitsPerSample", "exifInfo"."fps" AS "exifInfo_fps", "stack"."id" AS "stack_id", "stack"."primaryAssetId" AS "stack_primaryAssetId", "stackedAssets"."id" AS "stackedAssets_id", "stackedAssets"."deviceAssetId" AS "stackedAssets_deviceAssetId", "stackedAssets"."ownerId" AS "stackedAssets_ownerId", "stackedAssets"."libraryId" AS "stackedAssets_libraryId", "stackedAssets"."deviceId" AS "stackedAssets_deviceId", "stackedAssets"."type" AS "stackedAssets_type", "stackedAssets"."originalPath" AS "stackedAssets_originalPath", "stackedAssets"."previewPath" AS "stackedAssets_previewPath", "stackedAssets"."thumbnailPath" AS "stackedAssets_thumbnailPath", "stackedAssets"."thumbhash" AS "stackedAssets_thumbhash", "stackedAssets"."encodedVideoPath" AS "stackedAssets_encodedVideoPath", "stackedAssets"."createdAt" AS "stackedAssets_createdAt", "stackedAssets"."updatedAt" AS "stackedAssets_updatedAt", "stackedAssets"."deletedAt" AS "stackedAssets_deletedAt", "stackedAssets"."fileCreatedAt" AS "stackedAssets_fileCreatedAt", "stackedAssets"."localDateTime" AS "stackedAssets_localDateTime", "stackedAssets"."fileModifiedAt" AS "stackedAssets_fileModifiedAt", "stackedAssets"."isFavorite" AS "stackedAssets_isFavorite", "stackedAssets"."isArchived" AS "stackedAssets_isArchived", "stackedAssets"."isExternal" AS "stackedAssets_isExternal", "stackedAssets"."isOffline" AS "stackedAssets_isOffline", "stackedAssets"."checksum" AS "stackedAssets_checksum", "stackedAssets"."duration" AS "stackedAssets_duration", "stackedAssets"."isVisible" AS "stackedAssets_isVisible", "stackedAssets"."livePhotoVideoId" AS "stackedAssets_livePhotoVideoId", "stackedAssets"."originalFileName" AS "stackedAssets_originalFileName", "stackedAssets"."sidecarPath" AS "stackedAssets_sidecarPath", "stackedAssets"."stackId" AS "stackedAssets_stackId" FROM "assets" "asset" LEFT JOIN "exif" "exifInfo" ON "exifInfo"."assetId"="asset"."id"  LEFT JOIN "asset_stack" "stack" ON "stack"."id"="asset"."stackId"  LEFT JOIN "assets" "stackedAssets" ON "stackedAssets"."stackId"="stack"."id" AND ("stackedAssets"."deletedAt" IS NULL) WHERE "asset"."isVisible" = true AND "asset"."ownerId" IN ($1 ) AND ("asset"."fileCreatedAt", "asset"."id") < ($2, $3) AND "asset"."updatedAt" <= $4 ORDER BY "asset"."fileCreatedAt" DESC, "asset"."id" DESC LIMIT 10000
2024-06-03 00:55:47.985 UTC [95] ERROR:  invalid DSA memory alloc request size 1811939328
2024-06-03 00:55:47.985 UTC [95] CONTEXT:  parallel worker
2024-06-03 00:55:47.985 UTC [95] STATEMENT:  SELECT "asset"."id" AS "asset_id", "asset"."deviceAssetId" AS "asset_deviceAssetId", "asset"."ownerId" AS "asset_ownerId", "asset"."libraryId" AS "asset_libraryId", "asset"."deviceId" AS "asset_deviceId", "asset"."type" AS "asset_type", "asset"."originalPath" AS "asset_originalPath", "asset"."previewPath" AS "asset_previewPath", "asset"."thumbnailPath" AS "asset_thumbnailPath", "asset"."thumbhash" AS "asset_thumbhash", "asset"."encodedVideoPath" AS "asset_encodedVideoPath", "asset"."createdAt" AS "asset_createdAt", "asset"."updatedAt" AS "asset_updatedAt", "asset"."deletedAt" AS "asset_deletedAt", "asset"."fileCreatedAt" AS "asset_fileCreatedAt", "asset"."localDateTime" AS "asset_localDateTime", "asset"."fileModifiedAt" AS "asset_fileModifiedAt", "asset"."isFavorite" AS "asset_isFavorite", "asset"."isArchived" AS "asset_isArchived", "asset"."isExternal" AS "asset_isExternal", "asset"."isOffline" AS "asset_isOffline", "asset"."checksum" AS "asset_checksum", "asset"."duration" AS "asset_duration", "asset"."isVisible" AS "asset_isVisible", "asset"."livePhotoVideoId" AS "asset_livePhotoVideoId", "asset"."originalFileName" AS "asset_originalFileName", "asset"."sidecarPath" AS "asset_sidecarPath", "asset"."stackId" AS "asset_stackId", "exifInfo"."assetId" AS "exifInfo_assetId", "exifInfo"."description" AS "exifInfo_description", "exifInfo"."exifImageWidth" AS "exifInfo_exifImageWidth", "exifInfo"."exifImageHeight" AS "exifInfo_exifImageHeight", "exifInfo"."fileSizeInByte" AS "exifInfo_fileSizeInByte", "exifInfo"."orientation" AS "exifInfo_orientation", "exifInfo"."dateTimeOriginal" AS "exifInfo_dateTimeOriginal", "exifInfo"."modifyDate" AS "exifInfo_modifyDate", "exifInfo"."timeZone" AS "exifInfo_timeZone", "exifInfo"."latitude" AS "exifInfo_latitude", "exifInfo"."longitude" AS "exifInfo_longitude", "exifInfo"."projectionType" AS "exifInfo_projectionType", "exifInfo"."city" AS "exifInfo_city", "exifInfo"."livePhotoCID" AS "exifInfo_livePhotoCID", "exifInfo"."autoStackId" AS "exifInfo_autoStackId", "exifInfo"."state" AS "exifInfo_state", "exifInfo"."country" AS "exifInfo_country", "exifInfo"."make" AS "exifInfo_make", "exifInfo"."model" AS "exifInfo_model", "exifInfo"."lensModel" AS "exifInfo_lensModel", "exifInfo"."fNumber" AS "exifInfo_fNumber", "exifInfo"."focalLength" AS "exifInfo_focalLength", "exifInfo"."iso" AS "exifInfo_iso", "exifInfo"."exposureTime" AS "exifInfo_exposureTime", "exifInfo"."profileDescription" AS "exifInfo_profileDescription", "exifInfo"."colorspace" AS "exifInfo_colorspace", "exifInfo"."bitsPerSample" AS "exifInfo_bitsPerSample", "exifInfo"."fps" AS "exifInfo_fps", "stack"."id" AS "stack_id", "stack"."primaryAssetId" AS "stack_primaryAssetId", "stackedAssets"."id" AS "stackedAssets_id", "stackedAssets"."deviceAssetId" AS "stackedAssets_deviceAssetId", "stackedAssets"."ownerId" AS "stackedAssets_ownerId", "stackedAssets"."libraryId" AS "stackedAssets_libraryId", "stackedAssets"."deviceId" AS "stackedAssets_deviceId", "stackedAssets"."type" AS "stackedAssets_type", "stackedAssets"."originalPath" AS "stackedAssets_originalPath", "stackedAssets"."previewPath" AS "stackedAssets_previewPath", "stackedAssets"."thumbnailPath" AS "stackedAssets_thumbnailPath", "stackedAssets"."thumbhash" AS "stackedAssets_thumbhash", "stackedAssets"."encodedVideoPath" AS "stackedAssets_encodedVideoPath", "stackedAssets"."createdAt" AS "stackedAssets_createdAt", "stackedAssets"."updatedAt" AS "stackedAssets_updatedAt", "stackedAssets"."deletedAt" AS "stackedAssets_deletedAt", "stackedAssets"."fileCreatedAt" AS "stackedAssets_fileCreatedAt", "stackedAssets"."localDateTime" AS "stackedAssets_localDateTime", "stackedAssets"."fileModifiedAt" AS "stackedAssets_fileModifiedAt", "stackedAssets"."isFavorite" AS "stackedAssets_isFavorite", "stackedAssets"."isArchived" AS "stackedAssets_isArchived", "stackedAssets"."isExternal" AS "stackedAssets_isExternal", "stackedAssets"."isOffline" AS "stackedAssets_isOffline", "stackedAssets"."checksum" AS "stackedAssets_checksum", "stackedAssets"."duration" AS "stackedAssets_duration", "stackedAssets"."isVisible" AS "stackedAssets_isVisible", "stackedAssets"."livePhotoVideoId" AS "stackedAssets_livePhotoVideoId", "stackedAssets"."originalFileName" AS "stackedAssets_originalFileName", "stackedAssets"."sidecarPath" AS "stackedAssets_sidecarPath", "stackedAssets"."stackId" AS "stackedAssets_stackId" FROM "assets" "asset" LEFT JOIN "exif" "exifInfo" ON "exifInfo"."assetId"="asset"."id"  LEFT JOIN "asset_stack" "stack" ON "stack"."id"="asset"."stackId"  LEFT JOIN "assets" "stackedAssets" ON "stackedAssets"."stackId"="stack"."id" AND ("stackedAssets"."deletedAt" IS NULL) WHERE "asset"."isVisible" = true AND "asset"."ownerId" IN ($1 ) AND ("asset"."fileCreatedAt", "asset"."id") < ($2, $3) AND "asset"."updatedAt" <= $4 ORDER BY "asset"."fileCreatedAt" DESC, "asset"."id" DESC LIMIT 10000
2024-06-03 00:55:48.006 UTC [101] FATAL:  terminating background worker "parallel worker" due to administrator command
2024-06-03 00:55:48.006 UTC [101] STATEMENT:  SELECT "asset"."id" AS "asset_id", "asset"."deviceAssetId" AS "asset_deviceAssetId", "asset"."ownerId" AS "asset_ownerId", "asset"."libraryId" AS "asset_libraryId", "asset"."deviceId" AS "asset_deviceId", "asset"."type" AS "asset_type", "asset"."originalPath" AS "asset_originalPath", "asset"."previewPath" AS "asset_previewPath", "asset"."thumbnailPath" AS "asset_thumbnailPath", "asset"."thumbhash" AS "asset_thumbhash", "asset"."encodedVideoPath" AS "asset_encodedVideoPath", "asset"."createdAt" AS "asset_createdAt", "asset"."updatedAt" AS "asset_updatedAt", "asset"."deletedAt" AS "asset_deletedAt", "asset"."fileCreatedAt" AS "asset_fileCreatedAt", "asset"."localDateTime" AS "asset_localDateTime", "asset"."fileModifiedAt" AS "asset_fileModifiedAt", "asset"."isFavorite" AS "asset_isFavorite", "asset"."isArchived" AS "asset_isArchived", "asset"."isExternal" AS "asset_isExternal", "asset"."isOffline" AS "asset_isOffline", "asset"."checksum" AS "asset_checksum", "asset"."duration" AS "asset_duration", "asset"."isVisible" AS "asset_isVisible", "asset"."livePhotoVideoId" AS "asset_livePhotoVideoId", "asset"."originalFileName" AS "asset_originalFileName", "asset"."sidecarPath" AS "asset_sidecarPath", "asset"."stackId" AS "asset_stackId", "exifInfo"."assetId" AS "exifInfo_assetId", "exifInfo"."description" AS "exifInfo_description", "exifInfo"."exifImageWidth" AS "exifInfo_exifImageWidth", "exifInfo"."exifImageHeight" AS "exifInfo_exifImageHeight", "exifInfo"."fileSizeInByte" AS "exifInfo_fileSizeInByte", "exifInfo"."orientation" AS "exifInfo_orientation", "exifInfo"."dateTimeOriginal" AS "exifInfo_dateTimeOriginal", "exifInfo"."modifyDate" AS "exifInfo_modifyDate", "exifInfo"."timeZone" AS "exifInfo_timeZone", "exifInfo"."latitude" AS "exifInfo_latitude", "exifInfo"."longitude" AS "exifInfo_longitude", "exifInfo"."projectionType" AS "exifInfo_projectionType", "exifInfo"."city" AS "exifInfo_city", "exifInfo"."livePhotoCID" AS "exifInfo_livePhotoCID", "exifInfo"."autoStackId" AS "exifInfo_autoStackId", "exifInfo"."state" AS "exifInfo_state", "exifInfo"."country" AS "exifInfo_country", "exifInfo"."make" AS "exifInfo_make", "exifInfo"."model" AS "exifInfo_model", "exifInfo"."lensModel" AS "exifInfo_lensModel", "exifInfo"."fNumber" AS "exifInfo_fNumber", "exifInfo"."focalLength" AS "exifInfo_focalLength", "exifInfo"."iso" AS "exifInfo_iso", "exifInfo"."exposureTime" AS "exifInfo_exposureTime", "exifInfo"."profileDescription" AS "exifInfo_profileDescription", "exifInfo"."colorspace" AS "exifInfo_colorspace", "exifInfo"."bitsPerSample" AS "exifInfo_bitsPerSample", "exifInfo"."fps" AS "exifInfo_fps", "stack"."id" AS "stack_id", "stack"."primaryAssetId" AS "stack_primaryAssetId", "stackedAssets"."id" AS "stackedAssets_id", "stackedAssets"."deviceAssetId" AS "stackedAssets_deviceAssetId", "stackedAssets"."ownerId" AS "stackedAssets_ownerId", "stackedAssets"."libraryId" AS "stackedAssets_libraryId", "stackedAssets"."deviceId" AS "stackedAssets_deviceId", "stackedAssets"."type" AS "stackedAssets_type", "stackedAssets"."originalPath" AS "stackedAssets_originalPath", "stackedAssets"."previewPath" AS "stackedAssets_previewPath", "stackedAssets"."thumbnailPath" AS "stackedAssets_thumbnailPath", "stackedAssets"."thumbhash" AS "stackedAssets_thumbhash", "stackedAssets"."encodedVideoPath" AS "stackedAssets_encodedVideoPath", "stackedAssets"."createdAt" AS "stackedAssets_createdAt", "stackedAssets"."updatedAt" AS "stackedAssets_updatedAt", "stackedAssets"."deletedAt" AS "stackedAssets_deletedAt", "stackedAssets"."fileCreatedAt" AS "stackedAssets_fileCreatedAt", "stackedAssets"."localDateTime" AS "stackedAssets_localDateTime", "stackedAssets"."fileModifiedAt" AS "stackedAssets_fileModifiedAt", "stackedAssets"."isFavorite" AS "stackedAssets_isFavorite", "stackedAssets"."isArchived" AS "stackedAssets_isArchived", "stackedAssets"."isExternal" AS "stackedAssets_isExternal", "stackedAssets"."isOffline" AS "stackedAssets_isOffline", "stackedAssets"."checksum" AS "stackedAssets_checksum", "stackedAssets"."duration" AS "stackedAssets_duration", "stackedAssets"."isVisible" AS "stackedAssets_isVisible", "stackedAssets"."livePhotoVideoId" AS "stackedAssets_livePhotoVideoId", "stackedAssets"."originalFileName" AS "stackedAssets_originalFileName", "stackedAssets"."sidecarPath" AS "stackedAssets_sidecarPath", "stackedAssets"."stackId" AS "stackedAssets_stackId" FROM "assets" "asset" LEFT JOIN "exif" "exifInfo" ON "exifInfo"."assetId"="asset"."id"  LEFT JOIN "asset_stack" "stack" ON "stack"."id"="asset"."stackId"  LEFT JOIN "assets" "stackedAssets" ON "stackedAssets"."stackId"="stack"."id" AND ("stackedAssets"."deletedAt" IS NULL) WHERE "asset"."isVisible" = true AND "asset"."ownerId" IN ($1 ) AND ("asset"."fileCreatedAt", "asset"."id") < ($2, $3) AND "asset"."updatedAt" <= $4 ORDER BY "asset"."fileCreatedAt" DESC, "asset"."id" DESC LIMIT 10000

I suspect this to be a bug in the pgvecto-rs extension. I'm running tensorchord/pgvecto-rs:pg16-v0.2.1

porelli avatar Jun 03 '24 01:06 porelli

I have the same issue. Weirdly with the exact same date, the 4th of October 2020. I went into my local camera roll to look at the image that would cause the problem, however I don't have any images from that date. Currently, that blocks 22 images for me that are open for upload after that one, as it seems.

Oh, and just for context, my docker instance is running on an arch Linux based server

Pummelfisch avatar Sep 24 '24 11:09 Pummelfisch

Also, this looks pretty much like this issue #4837. It is also stuck at the 4h October 2020. That one got closed with a hint to reverse proxy and file sizes. However, for me and the issuer there this problem persists even when connecting over local IP without a reverse proxy.

Pummelfisch avatar Sep 25 '24 18:09 Pummelfisch

Exactly same issue here with the same date. Was excited to try Immich but had to go for another alternative because of this bug. Would love to see it fixed. Tried increasing shm size for database, setting unlimited file size on reverse proxy and connecting straight to Immich without a reverse proxy. Same issue every time.

broizter avatar Nov 09 '24 16:11 broizter

Same problem here, and it happeded very often.It just stopped randomly. I was in the LAN network with immich server.

jarryson avatar Nov 18 '24 07:11 jarryson

Since a few months I got the issue with 2 remaining images to upload. It starts with using a new phone. I also tried it directly without traeffik, but that makes no difference. I see this just with the new phone and not with the old ones, so I don´t seen an issue withe the server, more with the client. Is there a known bug for it? btw. the client and server logs are not showing useful entries..

tenor79 avatar Nov 21 '24 16:11 tenor79

@tenor79 From the observation I gathered, the left over files could be from a Shared Album feature of iCloud. Those assets might have been moved or deleted but the iOS database still somehow has record of them

alextran1502 avatar Nov 21 '24 16:11 alextran1502

I got shared albums with my wife, but we´re not frequently using them anymore. But that could be good hint, as I configured my new phone, I may not have selected all my old albums to avoid duplicates. I´ll do some tests in that way, thanks!

tenor79 avatar Nov 21 '24 16:11 tenor79

I´ve started with the new phone just with the album of the latest pics. Now, I´ve entered every album (36), did clearing of the duplicates, but it happens again. It stopps at 2 pictures left and the upload circle top right continues to run. How can I find those pictures?

tenor79 avatar Nov 21 '24 18:11 tenor79

Same issue but with different date. And in my case, the server shut down in the middle of a backup. Any ideas what could've gone wrong?

OmarShaikh avatar Nov 23 '24 20:11 OmarShaikh

Same issue but with different date. And in my case, the server shut down in the middle of a backup. Any ideas what could've gone wrong?

@OmarShaikh is your server up now? 😅

alextran1502 avatar Nov 24 '24 01:11 alextran1502

@tenor79 From the observation I gathered, the left over files could be from a Shared Album feature of iCloud. Those assets might have been moved or deleted but the iOS database still somehow has record of them

Do you have another hint? I just have the album „latest“, so it should not be an issue with other shared folders. Although, I’ve reduced the shared albums and disabled iCloud fotos. It s strange also, that I don’t have an error message on the client or server

tenor79 avatar Nov 25 '24 11:11 tenor79

@tenor79 the "Recents" albums includes everything

alextran1502 avatar Nov 25 '24 13:11 alextran1502

Would it be possible to add an error message that tells you what image is causing the issue? Currently there's nothing.

broizter avatar Nov 25 '24 13:11 broizter

Yes, but everything is accessible;) It’s just on the new phone not the old one. If I turn off iCloud Fotos, it will just save what is on the phone, right? How can I See which album is the one who causes an issue? I’ve removed every single album, the problem is still there.

tenor79 avatar Nov 25 '24 13:11 tenor79

I just found this github issue while having the same issue on ios. I had 2 videos on my phone, one from 2015 and one from 2016 that did not show up in the iOS app as being recognized but matched the dates on the backup page. Once i deleted these 2 videos, backups were quick and finished. They were not large, < 2mb each. Wonder if there was some compatibility issue with an older form of video or something.

cwoodall21 avatar Dec 20 '24 17:12 cwoodall21

In my case it was a photo that was the culprit so it's not exclusively a problem that occurs with video files

broizter avatar Dec 20 '24 17:12 broizter

I still have no clue which photo or video causes an issue.. I unsubscribed all but one albums which holds all last photos. Choose ignore icloud fotos and clear the database, no difference.

tenor79 avatar Dec 20 '24 17:12 tenor79

I compared the photos on Immich to the photos on my phone, after about 400 I found the one missing from Immich and deleted it. Wish there was a better way than that!

broizter avatar Dec 20 '24 17:12 broizter

This issue is quite complex since I haven't found a file that can cause the hang on my device yet, so I can reproduce it in the development environment to handle that case properly. In the code, we put a timeout in all places that handle the file's read process.

Would it be possible for you guys to export, zip the troubled file, and send it to me at [email protected]

alextran1502 avatar Dec 20 '24 17:12 alextran1502

How did you all find what file was blocking the upload?

In my 70k files its hard to pinpoint as immich only shows the default date of October 4th with 3 file remaining 😁

fforootd avatar Dec 20 '24 18:12 fforootd

@fforootd You can check it in the log I believe

alextran1502 avatar Dec 20 '24 18:12 alextran1502

I checked the log several times, but no indication. There is no error visible.

tenor79 avatar Dec 20 '24 18:12 tenor79

@alextran1502 My phone wont even let me export the videos (email, airdrop, messages, etc). They must be corrupted somehow

My videos matched up to the exact day show on the backup page

cwoodall21 avatar Dec 20 '24 18:12 cwoodall21

This issue is actually what led me to find https://github.com/immich-app/immich/issues/14828 since my backup never finished

cwoodall21 avatar Dec 20 '24 18:12 cwoodall21

@cwoodall21 We can track it in this issue as well

alextran1502 avatar Dec 20 '24 19:12 alextran1502

@cwoodall21 Is the corrupted file you deleted a LivePhotos, a normal photo, or a video?

alextran1502 avatar Dec 20 '24 19:12 alextran1502

They were both videos. Let me see if I can try other ways to get them off my phone

cwoodall21 avatar Dec 20 '24 19:12 cwoodall21

Hmm if they are both videos, I think I can try open a fix in the app

alextran1502 avatar Dec 20 '24 19:12 alextran1502

I tried using alternative apps to read the photo and filesystem but they give similar errors such as

The item "IMG_003069.MOV" is not available on your device and and does not appear to be stored on iCloud.

Seems like my phone has a reference to the file but its not stored anywhere anymore. Definitely a weird edge case to watch for

cwoodall21 avatar Dec 20 '24 19:12 cwoodall21