Skip to content

[UI] "Error Loading Images" hover interaction appearing on wrong element in the preview grid #29611

Description

@ndom91

I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

I'm experiencing this ERR_CHILD_PROCESS_STDIO_MAXBUFFER in AssetExtractMetadata (#29398), but that has also surfaced a tangentially related UI issue.

I have a whole set of videos that are rendering this "Error Loading Images" state, however, when hovering on a an item, the preview always starts playing in the row below it. You can't see my cursor in the screenshot below, but you can see the check icon visible on the item I'm actually hovering in the first row, but the preview is playing in the second row:

Image

You can see at the end of the section, where the image preview elements are rendered below in the empty area as well:

Image Image

Those last two items aren't videos with a black preview image, those are the UI elements from the row above. Notice how the items in the first row in the first screenshot above all don't have the play time UI elements in the top-right at all. So those are all offset by 1 row it seems. Those bottom two black items are non-interactive, they'll just end up rendering the preview when hovering on the item directly above them.

I hope that explanation makes sense haha

The OS that Immich Server is running on

Ubuntu 24.04

Version of Immich Server

v3.0.1

Version of Immich Mobile App

N/A

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

No response

Your docker-compose.yml content

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: vaapi
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  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}-rocm
    environment:
      - HSA_OVERRIDE_GFX_VERSION=11.5.1
      - ROCM_PATH=/opt/rocm
      - HIP_VISIBLE_DEVICES=0
    extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
      file: hwaccel.ml.yml
      service: rocm
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0

    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
      DB_STORAGE_TYPE: 'HDD'
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    shm_size: 128mb
    restart: always

volumes:
  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=/mnt/photos
# The location where your database files are stored
DB_DATA_LOCATION=./postgres

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=v3

# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=abc123

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

Reproduction steps

  1. Install v3.0.1
  2. Upload long (~ >40min) mp4 video from Google Takeout, for example
  3. See "Error Loading Images" previews displayed for videos where the metadata is failing to generate (AssetExtractMetadata fails with ERR_CHILD_PROCESS_STDIO_MAXBUFFER on clean, valid MP4 (mpeg2video/mp3) — exiftool/ffprobe pass standalone #29398)
  4. If you have multiple rows worth of these, you should see the above behaviour.

Relevant log output

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions