immich-app / immich

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

Specific points in timeline causes Immich to freeze #13795

Open kappa118 opened 2 weeks ago

kappa118 commented 2 weeks ago

The bug

There are specific points in the Immich timeline (web only it seems) that scrolling to that point locks up the entire app. You can still scroll, but thumbnails fail to load in, clicking on assets changes the URL in the bar but doesn't navigate, and clicking on any application links does not navigate. Only resolution is to reload the page.

I'm on the latest version, but this has been an issue since at least 1.118.0, if not before.

The OS that Immich Server is running on

Proxmox 8.2.2

Version of Immich Server

v1.119.0

Version of Immich Mobile App

v1.110.0

Platform with the issue

Your docker-compose.yml content

version: "3.8"

services:
  immich-server:
    container_name: immich-server
    image: ghcr.io/immich-app/immich-server:v1.119.0
    networks:
      - data
    volumes:
      - ${NAS}/docker/immich/data:/usr/src/app/upload
      - ${NAS}:${NAS}:ro
    environment:
      IMMICH_LOG_LEVEL: verbose
    env_file:
      - .env.immich
    depends_on:
      - redis
      - immich-db
    restart: unless-stopped
    labels:
      app: immich
      auth: false
      ingress:
        - port: 2283
          host: photos.${SERVER_DOMAIN}

  immich-ml:
    container_name: immich-ml
    image: ghcr.io/immich-app/immich-machine-learning:v1.119.0
    networks:
      - data
    volumes:
      - ${NAS}/docker/immich/data:/usr/src/app/upload
      - ${NAS}/docker/immich/model-cache:/cache
      - ${NAS}:${NAS}:ro
    environment:
      IMMICH_LOG_LEVEL: verbose
    env_file:
      - .env.immich
    labels:
      app: immich

  immich-db:
    container_name: immich-db
    image: tensorchord/pgvecto-rs:pg16-v0.2.0
    networks:
      - data
    environment:
      IMMICH_LOG_LEVEL: verbose
    env_file:
      - .env.immich
    volumes:
      - ${NAS}/docker/immich/postgres:/var/lib/postgresql/data
    restart: unless-stopped
    labels:
      app: immich

Your .env content

DB_HOSTNAME=immich-db
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_PASSWORD=VR7w6xgosDNtvzMBBScOGdoPlySawG42jLnCpaKWShbOep3WRDrfeRSFFvnWpp2K
POSTGRES_PASSWORD=VR7w6xgosDNtvzMBBScOGdoPlySawG42jLnCpaKWShbOep3WRDrfeRSFFvnWpp2K

REDIS_HOSTNAME=redis

REDIS_DBINDEX=3

UPLOAD_LOCATION=/mnt/storage/docker/immich/upload

IMMICH_WEB_URL=http://immich-web:3000
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_MACHINE_LEARNING_URL=http://immich-ml:3003

Reproduction steps

  1. Open Immich web application
  2. Scroll to a specified date in my instance (there are several I've found
  3. Issue occurs

Relevant log output

No relevant server logs that I've found, but there is a console error on the web when this occurs I am almost positive is related.

Uncaught (in promise) TypeError: e[2] is undefined
    Immutable 43
        bl
        Ke
        Le
        p
        yt
        mt
        promise callback*ht
        ht
        ctx
        Ce
        st
        s
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueTimer
        setTimeout handler*scheduleDrainIntersectedQueue
        queueScrollSensitiveTask
        queueScrollSensitiveTask
        it
        O
        m
        p
        yt
        mt
        promise callback*ht
        ht
        ctx
        Ce
        st
portal.12snxBw-.js:1:7209


### Additional information

Happy to troubleshoot if there's a way to run without minified JS code as I'm sure the error is in there but hard to tell given the current console log error format.
alextran1502 commented 2 weeks ago

This is a known issue, if you have a particular bucket with more than 10,000 assets, the server bucket API hasn't been reworked/optimized to paginate the response

kappa118 commented 2 weeks ago

What do you mean by 'bucket'? Do you mean like sections in the timeline? Because I have some days / months that seem to have a lot more than the section that fails to load in.

alextran1502 commented 2 weeks ago

yes, each bucket is group by the total assets of a month