immich-app / immich

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

Issue's after updating to v1.113.0 #12153

Closed GJurriens closed 1 month ago

GJurriens commented 1 month ago

The bug

After upgrading to v1.113.0 my images are not loading anymore. They show up like this (also in another browser and in an in-private window): image I do not seem to have this issue on my mobile device.

Also when logging in to the admin interface, I cannot open the repair part of the admin site. It just keeps on loading forever.

The OS that Immich Server is running on

Docker images running on Ubuntu 24.04

Version of Immich Server

v1.113.0

Version of Immich Mobile App

1.112.1 build 154 (latest for as far as I can see).

Platform with the issue

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}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always
    networks:
      - proxy
#      - immich
    labels:
      - "traefik.enable=true"
      ## http routers
      - "traefik.http.routers.immich.entrypoints=http"
      - "traefik.http.routers.immich.rule=Host(`immich.domain.tld`)"
      ## redirect headers
      - "traefik.http.middlewares.immich-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https"
      - "traefik.http.routers.immich.middlewares=traefik-https-redirect"
      ## https routers
      - "traefik.http.routers.immich-secure.entrypoints=https"
      - "traefik.http.routers.immich-secure.rule=Host(`immich.domain.tld`)"
      - "traefik.http.routers.immich-secure.tls=true"
      - "traefik.http.routers.immich-secure.tls.certresolver=resolver"

  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
    networks:
      - proxy
#      - immich

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:328fe6a5822256d065debb36617a8169dbfbd77b797c525288e465f56c1d392b
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
    networks:
      - proxy
#      - immich

  database:
    container_name: immich_postgres
    image: docker.io/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
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    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"]
    restart: always
    networks:
      - proxy
#      - immich

  backup:
    container_name: immich_db_dumper
    image: prodrigestivill/postgres-backup-local:14
    restart: always
    env_file:
      - .env
    environment:
      POSTGRES_HOST: database
      POSTGRES_CLUSTER: 'TRUE'
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      SCHEDULE: "@daily"
      POSTGRES_EXTRA_OPTS: '--clean --if-exists'
      BACKUP_DIR: /db_dumps
      BACKUP_KEEP_DAYS: 7
      HEALTHCHECK_PORT: 8080
    volumes:
      - ./db_dumps:/db_dumps
    depends_on:
      - database
    networks:
      - proxy

networks:
  proxy:
    external: true
#  immich:

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=./library
# The location where your database files are stored
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=Europe/Amsterdam

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

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=user
DB_DATABASE_NAME=database

Reproduction steps

  1. pull the new images using docker compose pull
  2. restart immich with the new images: docker compose up -d --force-recreate
  3. browse the site ...

Relevant log output

No response

Additional information

No response

alextran1502 commented 1 month ago

Please provide the server log, this means your mount at UPLOAD_LOCATION might not be mounted correctly. You can see the photos on the mobile app because it might use the local file

GJurriens commented 1 month ago

you might be onto something... it almost seems like it is generating the previews all over again. immich_server | [Nest] 7 - 08/30/2024, 8:16:47 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 9950aff2-413a-43a8-958d-585b5cfc6430 immich_server | [Nest] 7 - 08/30/2024, 8:16:47 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset e429d744-be1a-4f74-8296-22b915aa9992 immich_server | [Nest] 7 - 08/30/2024, 8:16:48 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset e725d7ba-b702-49d6-bd0a-55f7c87f8926 immich_server | [Nest] 7 - 08/30/2024, 8:16:48 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset ac9b5537-cdf7-4727-861e-a7b1c03b6390 immich_server | [Nest] 7 - 08/30/2024, 8:16:48 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 44c2b32d-b0a0-4c96-bc70-de949359a3b6 immich_server | [Nest] 7 - 08/30/2024, 8:16:49 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 4550c2c5-249a-4aed-b62e-eabcb2a997ef immich_server | [Nest] 7 - 08/30/2024, 8:16:49 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 420d8754-461a-45b6-9a87-96448fd640af immich_server | [Nest] 7 - 08/30/2024, 8:16:49 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset bcfeec72-9517-4b7d-80a3-7c637796cf2b immich_server | [Nest] 7 - 08/30/2024, 8:16:50 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 0db31700-b8d9-4520-bb8d-d29bba6153b3 immich_server | [Nest] 7 - 08/30/2024, 8:16:50 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 3ecf4f76-b442-45c7-a6d4-eb8f840db90f immich_server | [Nest] 7 - 08/30/2024, 8:16:50 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset e3546dfd-f4e9-4b05-9f2f-73485d11f48f immich_server | [Nest] 7 - 08/30/2024, 8:16:50 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 157697af-0168-4060-a195-3474f3366fb2 immich_server | [Nest] 7 - 08/30/2024, 8:16:51 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset c9b9a7fa-5114-41ca-a9b8-741050b597c4 immich_server | [Nest] 7 - 08/30/2024, 8:16:51 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 6184dc47-7f52-4338-ab2f-fc0a11b26174 immich_server | [Nest] 7 - 08/30/2024, 8:16:51 PM LOG [Microservices:MediaService] Successfully generated JPEG image preview for asset 6d159efa-8532-4362-9d18-9c5a5a419525

After a while I also get this in the logs: immich_server | [Nest] 17 - 08/30/2024, 8:17:12 PM ERROR [Api:LoggerRepository~o3frm3dy] Unable to send file: Error immich_server | Error: ENOENT: no such file or directory, access 'upload/thumbs/532f051e-4883-4dad-b80a-260a875c24fa/3b/ef/3beff8b9-5c4c-4332-b26d-159379f56b6c-thumbnail.webp' immich_server | at async access (node:internal/fs/promises:606:10) immich_server | at async sendFile (/usr/src/app/dist/utils/file.js:55:9) immich_server | at async AssetMediaController.viewAsset (/usr/src/app/dist/controllers/asset-media.controller.js:57:9) immich_server | [Nest] 17 - 08/30/2024, 8:17:12 PM WARN [Api:ExpressAdapter~o3frm3dy] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses immich_server | [Nest] 17 - 08/30/2024, 8:17:12 PM ERROR [Api:ExceptionsHandler~o3frm3dy] ENOENT: no such file or directory, access 'upload/thumbs/532f051e-4883-4dad-b80a-260a875c24fa/3b/ef/3beff8b9-5c4c-4332-b26d-159379f56b6c-thumbnail.webp' immich_server | Error: ENOENT: no such file or directory, access 'upload/thumbs/532f051e-4883-4dad-b80a-260a875c24fa/3b/ef/3beff8b9-5c4c-4332-b26d-159379f56b6c-thumbnail.webp' immich_server | at async access (node:internal/fs/promises:606:10) immich_server | at async sendFile (/usr/src/app/dist/utils/file.js:55:9) immich_server | at async AssetMediaController.viewAsset (/usr/src/app/dist/controllers/asset-media.controller.js:57:9) immich_server | [Nest] 17 - 08/30/2024, 8:17:12 PM ERROR [Api:LoggerRepository~rf4wwr8b] Unable to send file: Error immich_server | Error: ENOENT: no such file or directory, access 'upload/thumbs/532f051e-4883-4dad-b80a-260a875c24fa/73/b4/73b4c561-b72a-4206-a707-244630049904-thumbnail.webp' immich_server | at async access (node:internal/fs/promises:606:10) immich_server | at async sendFile (/usr/src/app/dist/utils/file.js:55:9) immich_server | at async AssetMediaController.viewAsset (/usr/src/app/dist/controllers/asset-media.controller.js:57:9) immich_server | [Nest] 17 - 08/30/2024, 8:17:12 PM WARN [Api:ExpressAdapter~rf4wwr8b] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses immich_server | [Nest] 17 - 08/30/2024, 8:17:12 PM ERROR [Api:ExceptionsHandler~rf4wwr8b] ENOENT: no such file or directory, access 'upload/thumbs/532f051e-4883-4dad-b80a-260a875c24fa/73/b4/73b4c561-b72a-4206-a707-244630049904-thumbnail.webp'

The images are stored on another server using an NFS mount in the OS to access them.