immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
44.98k stars 2.18k forks source link

New uploads from mobile/API show in the wrong tab on the webUI #8979

Closed ericswpark closed 3 months ago

ericswpark commented 4 months ago

The bug

Uploads from mobile will show in whatever tab is open on the webUI. A good way to reproduce this is with the "Trash" tab. Refreshing will rectify this issue, but new uploads that stream in will continue to be displayed in the incorrect place. (Until refreshed again.)

The OS that Immich Server is running on

unRAID

Version of Immich Server

v1.102.2

Version of Immich Mobile App

v1.102.2

Platform with the issue

Your docker-compose.yml content

version: '3.8'

#
# 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
    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
    env_file:
      - .env
    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
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:51d6c56749a4243096327e3fb964a48ed92254357108449cb6e23999c37773c5
    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}
    volumes:
      - ${DB_DATA_LOCATION}:/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=/srv/immich

# 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=randomrandomrandom

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=/srv/immich/postgres

REDIS_HOSTNAME=immich_redis

Reproduction steps

1. Open Immich WebUI
2. Navigate to Trash
3. On a separate device (mobile), start uploading via backup
4. See photos start to populate in the "Trash" library
5. Refresh to clear (temporarily) until new photos start to stream back in

Relevant log output

No response

Additional information

No response

flesser commented 4 months ago

I does not only happen for uploads from mobile but for any upload via the API.

I am currently uploading a bunch of photos using https://github.com/simulot/immich-go and they also appear in the Trash library as described in the original report above.

flesser commented 4 months ago

I must admit that I currently use it as "a feature, not a bug" to have a nice visual feedback of my current CLI upload progress.

But it's definitely a bug and bad user experience. Being new to Immich I was wondering why my uploads were immediately trashed and feared to have lost some images because I clicked "Empty Trash".

Joly0 commented 3 months ago

Hey, it seems like this doesnt only affect uploads. I added an external library, and about 1/4-1/2 of the images (roughly 1-2k images) end up in the trash and because the default setting of emptying trash is 30 days, i initially was wondering where so many of my images went, but then noticed they just went to trash and then removed.

ericswpark commented 3 months ago

@Joly0 that sounds like a different bug. This one is purely visual - the newly uploaded photos via API/mobile show up under Trash if it is currently open, but refreshing it clears it up. I'm guessing this is because the updates over websocket tell Immich to show the images under the currently open tab, and if it happens to be Trash then uploaded photos start showing up under Trash.

However, I haven't actually tested clicking on "empty trash" when this visual bug occurs. It's possible the webUI issues "permanently delete" commands for the photo IDs that show up under trash and causing it? If so this would be an even serious issue than originally reported.

Joly0 commented 3 months ago

Thx @ericswpark for the clarification, than it might be another issue. Will look into it again and might create a bug report then

bo0tzz commented 3 months ago

@michelheusschen since you self-assigned the duplicate #10347, I've assigned you here as well.