Page down doesn't work more than once in timeline #3103

Closed
opened 2026-02-05 07:42:56 +03:00 by OVERLORD · 0 comments
Owner

Originally created by @swishkin on GitHub (May 11, 2024).

The bug

When using Immich's Timeline, Page Down keypresses only scroll down the page one page length, then ignores all further Page Down keypresses unless Page Up is pressed before, i.e. first scrolling the Timeline to top.

Immich effectively allows scrolling up and down only within the first two page lengths of the timeline.

The OS that Immich Server is running on

Artix Linux

Version of Immich Server

v1.103.1

Version of Immich Mobile App

v1.103.1 build.2137

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

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

  redis:
    container_name: immich_redis
    image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
    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:
  model-cache:
networks:
  default:
    name: npm_default
    external: true

Your .env content

DB_DATABASE_NAME=immich
DB_USERNAME=immich
DB_PASSWORD=password
UPLOAD_LOCATION=/home/swishkin/docker/immich/uploads/
DB_DATA_LOCATION=/home/swishkin/docker/immich/db/

Reproduction steps

1. Open Immich in Brave (possibly other Chromium browsers) or Firefox, navigate to Timeline if not opened by default
2. Select and deselect one of the photos (just to be sure the timeline is focused)
3. Hit Page Down two or more times

Result is scrolling down one page length, then all further Page Down presses are ignored.

Relevant log output

Debug in Brave:

Uncaught (in promise) Unable to load image data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9I…cuNTkgNi41OEwxOSA4TDEwIDE3WiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zdmc+
Promise.then (async)		
handleSVGRoot	@	VM21 index.js:4857
overrideInlineStyle	@	VM21 index.js:4872
(anonymous)	@	VM21 index.js:7526
(anonymous)	@	VM21 index.js:4608
discoverNodes	@	VM21 index.js:4603
(anonymous)	@	VM21 index.js:4626
onMinorMutations	@	VM21 index.js:4626
(anonymous)	@	VM21 index.js:479
(anonymous)	@	VM21 index.js:478
childList (async)		
it	@	scheduler.CpwDsH6v.js:1
m	@	thumbnail.CYpBdO8U.js:1
p	@	thumbnail.CYpBdO8U.js:1
p	@	thumbnail.CYpBdO8U.js:1
At	@	scheduler.CpwDsH6v.js:1
p	@	thumbnail.CYpBdO8U.js:1
mt	@	scheduler.CpwDsH6v.js:1
ht	@	scheduler.CpwDsH6v.js:1
Promise.then (async)		
_t	@	scheduler.CpwDsH6v.js:1
ht	@	index.BTRZkbVl.js:4
(anonymous)	@	index.BTRZkbVl.js:4
j	@	thumbnail.CYpBdO8U.js:1)		
_t	@	scheduler.CpwDsH6v.js:1
ht	@	index.BTRZkbVl.js:4
(anonymous)	@	index.BTRZkbVl.js:4
j	@	thumbnail.CYpBdO8U.js:1

photos:1 Uncaught (in promise) Unable to load image data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9I…JMMTAsMThMOC41OSwxNi41OFoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ZnPg==
Promise.then (async)		
handleSVGRoot	@	VM21 index.js:4857
overrideInlineStyle	@	VM21 index.js:4872
(anonymous)	@	VM21 index.js:7526
(anonymous)	@	VM21 index.js:4608
discoverNodes	@	VM21 index.js:4603
(anonymous)	@	VM21 index.js:4626
onMinorMutations	@	VM21 index.js:4626
(anonymous)	@	VM21 index.js:479
(anonymous)	@	VM21 index.js:478
childList (async)		
it	@	scheduler.CpwDsH6v.js:1
m	@	15.BUtDk6_t.js:1
p	@	15.BUtDk6_t.js:1
p	@	15.BUtDk6_t.js:1
mt	@	scheduler.CpwDsH6v.js:1
ht	@	scheduler.CpwDsH6v.js:1
Promise.then (async)		
_t	@	scheduler.CpwDsH6v.js:1
ht	@	index.BTRZkbVl.js:4
(anonymous)	@	index.BTRZkbVl.js:4
c	@	15.BUtDk6_t.js:1

Additional information

I use Surfingkeys on Brave, but the same issue occurs even in Incognito and in an installation of Firefox without any extensions installed.

Originally created by @swishkin on GitHub (May 11, 2024). ### The bug When using Immich's Timeline, Page Down keypresses only scroll down the page one page length, then ignores all further Page Down keypresses unless Page Up is pressed before, i.e. first scrolling the Timeline to top. Immich effectively allows scrolling up and down only within the first two page lengths of the timeline. ### The OS that Immich Server is running on Artix Linux ### Version of Immich Server v1.103.1 ### Version of Immich Mobile App v1.103.1 build.2137 ### Platform with the issue - [ ] Server - [X] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML 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: - stack.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: - stack.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: - stack.env restart: always redis: container_name: immich_redis image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672 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: model-cache: networks: default: name: npm_default external: true ``` ### Your .env content ```Shell DB_DATABASE_NAME=immich DB_USERNAME=immich DB_PASSWORD=password UPLOAD_LOCATION=/home/swishkin/docker/immich/uploads/ DB_DATA_LOCATION=/home/swishkin/docker/immich/db/ ``` ### Reproduction steps ```bash 1. Open Immich in Brave (possibly other Chromium browsers) or Firefox, navigate to Timeline if not opened by default 2. Select and deselect one of the photos (just to be sure the timeline is focused) 3. Hit Page Down two or more times Result is scrolling down one page length, then all further Page Down presses are ignored. ``` ### Relevant log output ```shell Debug in Brave: Uncaught (in promise) Unable to load image data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9I…cuNTkgNi41OEwxOSA4TDEwIDE3WiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zdmc+ Promise.then (async) handleSVGRoot @ VM21 index.js:4857 overrideInlineStyle @ VM21 index.js:4872 (anonymous) @ VM21 index.js:7526 (anonymous) @ VM21 index.js:4608 discoverNodes @ VM21 index.js:4603 (anonymous) @ VM21 index.js:4626 onMinorMutations @ VM21 index.js:4626 (anonymous) @ VM21 index.js:479 (anonymous) @ VM21 index.js:478 childList (async) it @ scheduler.CpwDsH6v.js:1 m @ thumbnail.CYpBdO8U.js:1 p @ thumbnail.CYpBdO8U.js:1 p @ thumbnail.CYpBdO8U.js:1 At @ scheduler.CpwDsH6v.js:1 p @ thumbnail.CYpBdO8U.js:1 mt @ scheduler.CpwDsH6v.js:1 ht @ scheduler.CpwDsH6v.js:1 Promise.then (async) _t @ scheduler.CpwDsH6v.js:1 ht @ index.BTRZkbVl.js:4 (anonymous) @ index.BTRZkbVl.js:4 j @ thumbnail.CYpBdO8U.js:1) _t @ scheduler.CpwDsH6v.js:1 ht @ index.BTRZkbVl.js:4 (anonymous) @ index.BTRZkbVl.js:4 j @ thumbnail.CYpBdO8U.js:1 photos:1 Uncaught (in promise) Unable to load image data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9I…JMMTAsMThMOC41OSwxNi41OFoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ZnPg== Promise.then (async) handleSVGRoot @ VM21 index.js:4857 overrideInlineStyle @ VM21 index.js:4872 (anonymous) @ VM21 index.js:7526 (anonymous) @ VM21 index.js:4608 discoverNodes @ VM21 index.js:4603 (anonymous) @ VM21 index.js:4626 onMinorMutations @ VM21 index.js:4626 (anonymous) @ VM21 index.js:479 (anonymous) @ VM21 index.js:478 childList (async) it @ scheduler.CpwDsH6v.js:1 m @ 15.BUtDk6_t.js:1 p @ 15.BUtDk6_t.js:1 p @ 15.BUtDk6_t.js:1 mt @ scheduler.CpwDsH6v.js:1 ht @ scheduler.CpwDsH6v.js:1 Promise.then (async) _t @ scheduler.CpwDsH6v.js:1 ht @ index.BTRZkbVl.js:4 (anonymous) @ index.BTRZkbVl.js:4 c @ 15.BUtDk6_t.js:1 ``` ### Additional information I use Surfingkeys on Brave, but the same issue occurs even in Incognito and in an installation of Firefox without any extensions installed.
OVERLORD added the 🖥️web label 2026-02-05 07:42:56 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#3103