Photos in the timeline are getting skipped when scrolling upwards from the bottom #5461

Closed
opened 2026-02-05 11:28:48 +03:00 by OVERLORD · 2 comments
Owner

Originally created by @macphoenix1000 on GitHub (Feb 26, 2025).

The bug

Opening Immich in Safari 18.3 on a MacBook Pro M2 Max with macOS Sequoia 15.3.1. Scrolling down in the photos timeline all way down to the bottom. Then scrolling up step-by-step. Suddenly Immich skips some rows of photos automatically. Feels like Immich is jerking. Only happens in Safari, not in Firefox.

The OS that Immich Server is running on

Docker (20.10.23-1437) on Synology NAS DSM 7.2.2-72806 Update 3

Version of Immich Server

v1.126.1

Version of Immich Mobile App

Safari Browser 18.3

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

services:
  immich-redis:
    image: redis
    container_name: Immich-REDIS
    hostname: immich-redis
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping || exit 1"]
    user: XXXXX:XXX
    environment:
      - TZ=Europe/Berlin
    volumes:
      - /volume2/docker/immich/redis:/data:rw
    restart: on-failure:5

  immich-db:
    image: tensorchord/pgvecto-rs:pg16-v0.2.0
    container_name: Immich-DB
    hostname: immich-db
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "immich", "-U", "immichuser"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - /volume2/docker/immich/db:/var/lib/postgresql/data:rw
    environment:
      - TZ=Europe/Berlin
      - POSTGRES_DB=immich
      - POSTGRES_USER=immichuser
      - POSTGRES_PASSWORD=XXXXXXXX
    restart: on-failure:5

  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    container_name: Immicc-SERVER
    hostname: immich-server
    user: XXXX:XXX
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    ports:
      - 8212:2283
    volumes:
      - /volume2/docker/immich/upload:/usr/src/app/upload:rw
      - /volume1/Photo:/volume1/Photo:rw
    restart: on-failure:5
    depends_on:
      immich-redis:
        condition: service_healthy
      immich-db:
        condition: service_started

  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:release
    container_name: Immich-LEARNING
    hostname: immich-machine-learning
    user: XXXX:XXX
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    volumes:
      - /volume2/docker/immich/upload:/usr/src/app/upload:rw
      - /volume2/docker/immich/cache:/cache:rw
      - /volume2/docker/immich/matplotlib:/matplotlib:rw
    environment:
      - MPLCONFIGDIR=/matplotlib
    restart: on-failure:5
    depends_on:
      immich-db:
        condition: service_started

Your .env content

NODE_ENV=production
TZ=Europe/Berlin
###################################################################################
# Database
###################################################################################

DB_HOSTNAME=immich-db
DB_USERNAME=immichuser
DB_PASSWORD=XXXXXXXX
DB_DATABASE_NAME=immich

# Optional Database settings:
# DB_PORT=5432

###################################################################################
# Redis
###################################################################################

REDIS_HOSTNAME=immich-redis

# Optional Redis settings:
# REDIS_PORT=6379
# REDIS_DBINDEX=0
# REDIS_PASSWORD=
# REDIS_SOCKET=

###################################################################################
# Log message level - [simple|verbose]
###################################################################################

LOG_LEVEL=log

###################################################################################
# JWT SECRET
###################################################################################

# This JWT_SECRET is used to sign the authentication keys for user login
# You should set it to a long randomly generated value
# You can use this command to generate one: openssl rand -base64 128
JWT_SECRET=XXXXXXXX

###################################################################################
# Reverse Geocoding
####################################################################################

# DISABLE_REVERSE_GEOCODING=false

# Reverse geocoding is done locally which has a small impact on memory usage
# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
# This ranges from 0-3 with 3 being the most precise
# 3 - Cities > 500 population: ~200MB RAM
# 2 - Cities > 1000 population: ~150MB RAM
# 1 - Cities > 5000 population: ~80MB RAM
# 0 - Cities > 15000 population: ~40MB RAM

DISABLE_REVERSE_GEOCODING=false
REVERSE_GEOCODING_PRECISION=3

####################################################################################
# WEB - Optional
####################################################################################

# Custom message on the login page, should be written in HTML form.
# For example PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>"

PUBLIC_LOGIN_PAGE_MESSAGE=

####################################################################################
# Alternative Service Addresses - Optional
#
# This is an advanced feature for users who may be running their immich services on different hosts.
# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers.
# Note: immich-microservices is bound to 3002, but no references are made
####################################################################################

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

####################################################################################
# OAuth Setting - Optional
#
# These setting will enable OAuth login for your instance of Immich
# Folow the instructions in the page https://immich.app/docs/usage/oauth to set up your OAuth provider
####################################################################################

# OAUTH_ENABLED=false
# OAUTH_ISSUER_URL=
# OAUTH_CLIENT_ID=
# OAUTH_CLIENT_SECRET=
# OAUTH_BUTTON_TEXT=Login with OAuth
# OAUTH_AUTO_REGISTER=true
# OAUTH_SCOPE="openid profile email"

Reproduction steps

  1. Open Safari on macOS Sequoia
  2. Enter Immich url and press return
  3. Select Photos
  4. Scroll down timeline to the bottom
  5. Scroll up step-by-step on the MacBook touchpad
  6. After a few steps of upward scrolling, Immich "automatically" skips several rows of photos
    ...

Relevant log output


Additional information

Error only occurs in Safari and does not show up in Firefox 135.0.1. Immich app 1.126.1 build.194 on iPad Pro M4 is also fine and doesn't show the error.

In Safari there are add-ons installed for Synology Photos (Synology Image Assistant) and Bitwarden.

Originally created by @macphoenix1000 on GitHub (Feb 26, 2025). ### The bug Opening Immich in Safari 18.3 on a MacBook Pro M2 Max with macOS Sequoia 15.3.1. Scrolling down in the photos timeline all way down to the bottom. Then scrolling up step-by-step. Suddenly Immich skips some rows of photos automatically. Feels like Immich is jerking. Only happens in Safari, not in Firefox. ### The OS that Immich Server is running on Docker (20.10.23-1437) on Synology NAS DSM 7.2.2-72806 Update 3 ### Version of Immich Server v1.126.1 ### Version of Immich Mobile App Safari Browser 18.3 ### Platform with the issue - [ ] Server - [x] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML services: immich-redis: image: redis container_name: Immich-REDIS hostname: immich-redis security_opt: - no-new-privileges:true healthcheck: test: ["CMD-SHELL", "redis-cli ping || exit 1"] user: XXXXX:XXX environment: - TZ=Europe/Berlin volumes: - /volume2/docker/immich/redis:/data:rw restart: on-failure:5 immich-db: image: tensorchord/pgvecto-rs:pg16-v0.2.0 container_name: Immich-DB hostname: immich-db security_opt: - no-new-privileges:true healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "immich", "-U", "immichuser"] interval: 10s timeout: 5s retries: 5 volumes: - /volume2/docker/immich/db:/var/lib/postgresql/data:rw environment: - TZ=Europe/Berlin - POSTGRES_DB=immich - POSTGRES_USER=immichuser - POSTGRES_PASSWORD=XXXXXXXX restart: on-failure:5 immich-server: image: ghcr.io/immich-app/immich-server:release container_name: Immicc-SERVER hostname: immich-server user: XXXX:XXX security_opt: - no-new-privileges:true env_file: - stack.env ports: - 8212:2283 volumes: - /volume2/docker/immich/upload:/usr/src/app/upload:rw - /volume1/Photo:/volume1/Photo:rw restart: on-failure:5 depends_on: immich-redis: condition: service_healthy immich-db: condition: service_started immich-machine-learning: image: ghcr.io/immich-app/immich-machine-learning:release container_name: Immich-LEARNING hostname: immich-machine-learning user: XXXX:XXX security_opt: - no-new-privileges:true env_file: - stack.env volumes: - /volume2/docker/immich/upload:/usr/src/app/upload:rw - /volume2/docker/immich/cache:/cache:rw - /volume2/docker/immich/matplotlib:/matplotlib:rw environment: - MPLCONFIGDIR=/matplotlib restart: on-failure:5 depends_on: immich-db: condition: service_started ``` ### Your .env content ```Shell NODE_ENV=production TZ=Europe/Berlin ################################################################################### # Database ################################################################################### DB_HOSTNAME=immich-db DB_USERNAME=immichuser DB_PASSWORD=XXXXXXXX DB_DATABASE_NAME=immich # Optional Database settings: # DB_PORT=5432 ################################################################################### # Redis ################################################################################### REDIS_HOSTNAME=immich-redis # Optional Redis settings: # REDIS_PORT=6379 # REDIS_DBINDEX=0 # REDIS_PASSWORD= # REDIS_SOCKET= ################################################################################### # Log message level - [simple|verbose] ################################################################################### LOG_LEVEL=log ################################################################################### # JWT SECRET ################################################################################### # This JWT_SECRET is used to sign the authentication keys for user login # You should set it to a long randomly generated value # You can use this command to generate one: openssl rand -base64 128 JWT_SECRET=XXXXXXXX ################################################################################### # Reverse Geocoding #################################################################################### # DISABLE_REVERSE_GEOCODING=false # Reverse geocoding is done locally which has a small impact on memory usage # This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable # This ranges from 0-3 with 3 being the most precise # 3 - Cities > 500 population: ~200MB RAM # 2 - Cities > 1000 population: ~150MB RAM # 1 - Cities > 5000 population: ~80MB RAM # 0 - Cities > 15000 population: ~40MB RAM DISABLE_REVERSE_GEOCODING=false REVERSE_GEOCODING_PRECISION=3 #################################################################################### # WEB - Optional #################################################################################### # Custom message on the login page, should be written in HTML form. # For example PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>" PUBLIC_LOGIN_PAGE_MESSAGE= #################################################################################### # Alternative Service Addresses - Optional # # This is an advanced feature for users who may be running their immich services on different hosts. # It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers. # Note: immich-microservices is bound to 3002, but no references are made #################################################################################### IMMICH_WEB_URL=http://immich-web:3000 IMMICH_SERVER_URL=http://immich-server:3001 IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 #################################################################################### # OAuth Setting - Optional # # These setting will enable OAuth login for your instance of Immich # Folow the instructions in the page https://immich.app/docs/usage/oauth to set up your OAuth provider #################################################################################### # OAUTH_ENABLED=false # OAUTH_ISSUER_URL= # OAUTH_CLIENT_ID= # OAUTH_CLIENT_SECRET= # OAUTH_BUTTON_TEXT=Login with OAuth # OAUTH_AUTO_REGISTER=true # OAUTH_SCOPE="openid profile email" ``` ### Reproduction steps 1. Open Safari on macOS Sequoia 2. Enter Immich url and press return 3. Select Photos 4. Scroll down timeline to the bottom 5. Scroll up step-by-step on the MacBook touchpad 6. After a few steps of upward scrolling, Immich "automatically" skips several rows of photos ... ### Relevant log output ```shell ``` ### Additional information Error only occurs in Safari and does not show up in Firefox 135.0.1. Immich app 1.126.1 build.194 on iPad Pro M4 is also fine and doesn't show the error. In Safari there are add-ons installed for Synology Photos (Synology Image Assistant) and Bitwarden.
Author
Owner

@akostadinov commented on GitHub (Mar 15, 2025):

What does it mean "skip"? Can you post screenshots or a video?

@akostadinov commented on GitHub (Mar 15, 2025): What does it mean "skip"? Can you post screenshots or a video?
Author
Owner

@macphoenix1000 commented on GitHub (Mar 16, 2025):

Hello,

actually, the bug does no longer occur in immich v1.129.0. Scrolling upwards from the bottom in the fotos timeline is now smooth again in s´Safari. Either the immich update oder the macOS update did fix it in the meantime.

But thank you very much for asking!

Kind regards,
Michael

Am 15.03.2025 um 12:35 schrieb Aleksandar N. Kostadinov @.***>:

akostadinov
left a comment
(immich-app/immich#16330)
What does it mean "skip"? Can you post screenshots or a video?


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.

https://github.com/immich-app/immich/issues/16330#issuecomment-2726462980 https://github.com/notifications/unsubscribe-auth/BLVJDKIS6B2PSPQU5GOTCUD2UQF6LAVCNFSM6AAAAABX3U5O42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMRWGQ3DEOJYGA

akostadinov
left a comment
(immich-app/immich#16330)
https://github.com/immich-app/immich/issues/16330#issuecomment-2726462980
What does it mean "skip"? Can you post screenshots or a video?


Reply to this email directly, view it on GitHub https://github.com/immich-app/immich/issues/16330#issuecomment-2726462980, or unsubscribe https://github.com/notifications/unsubscribe-auth/BLVJDKIS6B2PSPQU5GOTCUD2UQF6LAVCNFSM6AAAAABX3U5O42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMRWGQ3DEOJYGA.
You are receiving this because you authored the thread.

@macphoenix1000 commented on GitHub (Mar 16, 2025): Hello, actually, the bug does no longer occur in immich v1.129.0. Scrolling upwards from the bottom in the fotos timeline is now smooth again in s´Safari. Either the immich update oder the macOS update did fix it in the meantime. But thank you very much for asking! Kind regards, Michael > Am 15.03.2025 um 12:35 schrieb Aleksandar N. Kostadinov ***@***.***>: > > > akostadinov > left a comment > (immich-app/immich#16330) > What does it mean "skip"? Can you post screenshots or a video? > > — > Reply to this email directly, view it on GitHub, or unsubscribe. > You are receiving this because you authored the thread. > > <https://github.com/immich-app/immich/issues/16330#issuecomment-2726462980> <https://github.com/notifications/unsubscribe-auth/BLVJDKIS6B2PSPQU5GOTCUD2UQF6LAVCNFSM6AAAAABX3U5O42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMRWGQ3DEOJYGA> > > akostadinov > left a comment > (immich-app/immich#16330) > <https://github.com/immich-app/immich/issues/16330#issuecomment-2726462980> > What does it mean "skip"? Can you post screenshots or a video? > > — > Reply to this email directly, view it on GitHub <https://github.com/immich-app/immich/issues/16330#issuecomment-2726462980>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/BLVJDKIS6B2PSPQU5GOTCUD2UQF6LAVCNFSM6AAAAABX3U5O42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMRWGQ3DEOJYGA>. > You are receiving this because you authored the thread. >
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#5461