Skip to content

Reassigning existing file to album using CLI does not have effect #28142

@peterdk

Description

@peterdk

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

  • Yes

The bug

I am moving my parents over to a immich instance, and am processing my dads iCloud takeout.
I used immich-go, and all was quite smooth. However, when presenting the result to him, it turned out some of the movies or photos were not present in the right albums.
I did have a look and did find the files inside the albums on the icloud takeout source I used. The files are also found when importing and also when reprocessing them, the log did show that the album was assigned.
I thought of it maybe a bug of immich-go so I tried immich cli and there it also showed, it found the files as being uploaded already and assigned all to the album. But looking at the web interface, it still doesn't show up.

Crawling for assets...
Hashing files           | ████████████████████████████████████████ | 100% | ETA: 0s | 32.1 MB/32.1 MB
Checking for duplicates | ████████████████████████████████████████ | 100% | ETA: 0s | 32.1 MB/32.1 MB
Found 0 new files and 21 duplicates
All assets were already uploaded, nothing to do.
Creating albums | ████████████████████████████████████████ | 100% | ETA: 0s | 0/0 albums
Successfully created 0 new albums
Successfully updated 21 assets
Adding assets to albums | ████████████████████████████████████████ | 100% | ETA: 0s | 21/21 assets

So I am not sure what is going on here? It seems, since immich-go has same issue, that it's happening on the server side? I did not find any logs in docker compose logs that indicated of a issue.

Would love to hear how I could better investigate this. It is now blocking me from switching my parents over from iCloud to Immich.

The OS that Immich Server is running on

Ubuntu 24.04

Version of Immich Server

v2.7.5

Version of Immich Mobile App

v2.7.4

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

No response

Your docker-compose.yml content

#
# WARNING: To install Immich, follow our guide: https://docs.immich.app/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: nvenc # 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}-cuda
    extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
      file: hwaccel.ml.yml
      service: cuda # 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:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9
    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:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
    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
    healthcheck:
      disable: false

volumes:
  model-cache:

Your .env content

# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=/qvo/immich/library

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=/qvo/immich/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=Europe/Amsterdam

# The Immich version to use. You can pin this to a specific version like "v2.1.0"
IMMICH_VERSION=v2

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

Reproduction steps

Can't really reproduce from scratch, except for that it's happening now at my server consistently for a file outside the album.

Relevant log output

 PUT /api/albums/ef29119c-4032-4e5f-b6a1-a6ec95ea280a/assets 200 4.53ms 10.200.0.17

and with JSON verbose:

immich_server  | {"level":"debug","pid":69,"timestamp":1777393065164,"message":"PUT /api/albums/ef29119c-4032-4e5f-b6a1-a6ec95ea280a/assets 200 4.77ms 10.200.0.17","context":"LoggingInterceptor"}
immich_server  | {"level":"verbose","pid":69,"timestamp":1777393065164,"message":"{\"ids\":[\"9085bfc8-01e5-4933-a54d-b7b1e66c0f62\",\"06de6275-9e44-4abd-85cd-4fd4fa551b27\",\"27e47e3f-59e3-40ed-8021-9c4bb6135f82\",\"6407c765-61fe-4af3-a029-f2fc0369bff5\",\"f1de1b14-68fb-4c08-9237-e64b1a04c5a8\",\"f9fba04e-e4ac-42f0-882e-ce9668f43958\",\"dff7faea-a274-408b-b33e-e4514c33bb51\",\"90a34706-db94-48c3-8707-03306a4ebd21\",\"dde71788-bce4-4f0c-821a-0f43ae7aa4c7\",\"1ad3b618-63fa-46a0-8b24-e2c21c0ae378\",\"56803119-9c4d-48a3-a408-a0c99ff36358\",\"c7add0c9-4a15-4eef-959e-a1e8d0337093\",\"ae551768-4037-40d6-86e7-d311216096bf\",\"0e94f7fc-55ee-4bda-b84e-656565251cfa\",\"057627d9-1d39-42b9-8276-268812653480\",\"6fea305b-dcd2-44a0-8416-24e1be6229c2\",\"74c10dcc-2ae7-4a13-8a8d-11cffdefcd18\",\"e251f11d-58fd-4243-be6d-62ae20c2bc5c\",\"98af0ea4-aa65-4ce8-8c82-65a8b46a59af\",\"5620b440-3fb0-44c6-8a77-9870676a6165\",\"5debdb0e-d4e0-4965-840c-039515ccf923\"]}","context":"LoggingInterceptor"}

So it does indeed assign the 21 items present in the folder, but somehow it doesn't actually apply it to that missing photo.
I checked and the ef2911[..] is indeed the folder I am looking in in the web interface.

The image that is missing is f9fba04e-e4ac-42f0-882e-ce9668f43958 and it is indeed present in the PUT above.
I opened the image on web, and saw that it now does say: present in 'The Album'. So it's somehow linked, but it's not visible in the web interface when going to that album?! Is this a album bug?

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions