#Immich Displays "Error Loading Image"

1 messages · Page 1 of 1 (latest)

wintry talon
#

Recently came back to immich after an infrastructure switch which forced me to go without a photo backup for a while. So I know this behavior isn't normal, immich displays a lot of images with "error loading image". Some of these were uploaded by my gphotos backup import but some that were uploaded from my phone, still say this. Does this sound like a file integrity issue, software acceleration limits, etc? The docker server logs just have a repeat of this (with different IDs as expected) over and over again:

[Nest] 7  - 03/03/2026, 5:09:17 AM     LOG [Microservices:MediaService] Transcoding video 104529d8-0010-43ff-b7be-aa01cd779fd8 without hardware acceleration
[Nest] 7  - 03/03/2026, 5:09:18 AM     LOG [Microservices:MediaService] Successfully encoded 104529d8-0010-43ff-b7be-aa01cd779fd8
[Nest] 7  - 03/03/2026, 5:09:19 AM     LOG [Microservices:MediaService] Transcoding video 44068ef3-33d2-4f57-8a23-35aa2b0e9b6d without hardware acceleration
[Nest] 7  - 03/03/2026, 5:09:22 AM     LOG [Microservices:MediaService] Successfully encoded 44068ef3-33d2-4f57-8a23-35aa2b0e9b6d
[Nest] 7  - 03/03/2026, 5:09:22 AM     LOG [Microservices:MediaService] Transcoding video 3759d375-7fc4-4c39-b233-055f07530055 without hardware acceleration
[Nest] 7  - 03/03/2026, 5:09:24 AM     LOG [Microservices:MediaService] Successfully encoded 3759d375-7fc4-4c39-b233-055f07530055
[Nest] 7  - 03/03/2026, 5:09:24 AM     LOG [Microservices:MediaService] Transcoding video d50591e1-119f-4c1c-bec3-c40032553773 without hardware acceleration
[Nest] 7  - 03/03/2026, 5:09:46 AM     LOG [Microservices:MediaService] Successfully encoded d50591e1-119f-4c1c-bec3-c40032553773``` This is persistent across clients btw, server sided issue.
stuck gateBOT
#

:wave: Hey @wintry talon,

Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich immich.

References

#

Checklist

I have...

  1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time).
  2. :ballot_box_with_check: read applicable release notes.
  3. :ballot_box_with_check: reviewed the FAQs for known issues.
  4. :ballot_box_with_check: reviewed Github for known issues.
  5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy).
  6. :ballot_box_with_check: uploaded the relevant information (see below).
  7. :ballot_box_with_check: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable

(an item can be marked as "complete" by reacting with the appropriate number)

Information

In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:

  • Your docker-compose.yml and .env files.
  • Logs from all the containers and their status (see above).
  • All the troubleshooting steps you've tried so far.
  • Any recent changes you've made to Immich or your system.
  • Details about your system (both software/OS and hardware).
  • Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h).
  • The version of the Immich server, mobile app, and other relevant pieces.
  • Any other information that you think might be relevant.

Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)

If this ticket can be closed you can use the /close command, and re-open it later if needed.

wintry talon
#

My compose looks like this:


  immich-server:
    container_name: immich_server
    user: 1003:1004
    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:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/data
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - '${LAN_BIND_ADDR}:2283:2283'
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false
    networks: [lan, internal]

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] 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://docs.immich.app/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    user: 1003:1004
    volumes:
      - /personal/immich/modelcache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false
    networks: [lan, internal]

  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:9@sha256:546304417feac0874c3dd576e0952c6bb8f06bb4093ea0c9ca303c73cf458f63
    # user: 1003:1004
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
    networks: [lan, internal]
``` Postgres container couldn't fit in discord's max message size limit let me know if you need it
#

My immich docker service is on an SSD and my photos are stored on a SAS drive (enterprise) HHD. Neofetch info:

stuck gateBOT
gusty karma
#

These logs are ongoing transcodes, the error loading image is actually because there is no thumbnail for those, I assume those are ongoing as well

#

Check your jobs dashboard

wintry talon
wintry talon
#

Nevermind, clicked the all button and now there are 3000 items inqueue

#

I'll update in an hour when it finishes

mighty forge
#

I have this same issue.

Mostly from my wife's iPhone 16 Pro involving .heic images.

They sometimes clear themselves.
I have also run the generate images job.
They are stuck. Still showing "error loading image"

The original files are there as I can download the files.

April 16th is when the issue started according to missing thumbnails.
But I remember earlier this year is when it showed missing thumbnails.

#
[Nest] 294  - 05/03/2026, 6:15:35 PM   ERROR [Microservices:{"id":"6a66d61d-13d1-4b6f-a70a-72ab050fdfde"}] Unable to run job handler (AssetGenerateThumbnails): Error: VipsJpeg: premature end of JPEG image
Error: VipsJpeg: premature end of JPEG image
    at Sharp.toBuffer (/app/immich/server/node_modules/.pnpm/[email protected]/node_modules/sharp/lib/output.js:163:17)
    at MediaRepository.decodeImage (/app/immich/server/dist/repositories/media.repository.js:120:31)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async MediaService.decodeImage (/app/immich/server/dist/services/media.service.js:186:32)
    at async MediaService.extractOriginalImage (/app/immich/server/dist/services/media.service.js:197:44)
    at async MediaService.generateImageThumbnails (/app/immich/server/dist/services/media.service.js:213:32)
    at async MediaService.handleGenerateThumbnails (/app/immich/server/dist/services/media.service.js:153:25)
    at async JobService.onJobRun (/app/immich/server/dist/services/job.service.js:51:30)
    at async EventRepository.onEvent (/app/immich/server/dist/repositories/event.repository.js:91:13)
    at async /app/immich/server/node_modules/.pnpm/[email protected]/node_modules/bullmq/dist/cjs/classes/worker.js:570:32
#

Grok suggest this IMMICH_PROCESS_INVALID_IMAGES=true to environment variables.

#

I don't think that will help.
I want to fix the conversion error not just reprocess previously marked invalid images

mighty forge
#

Nevermind, Grok was correct.

IMMICH_PROCESS_INVALID_IMAGES=true as a key in my unraid docker config worked.

#

Still a few errors. But my thumbnails are fixed.

[Nest] 654  - 05/03/2026, 8:38:36 PM   ERROR [Microservices:{"id":"dc6c623d-e90a-4b89-929f-cad57bbaabe9"}] Unable to run job handler (AssetGenerateThumbnails): Error: Input file has corrupt header: VipsJpeg: ./lib/jpegli/decode_marker.cc:499: Skipped 27153 bytes before marker 0xd1
VipsJpeg: ./lib/jpegli/decode_marker.cc:554: Unexpected marker 0xd1
Error: Input file has corrupt header: VipsJpeg: ./lib/jpegli/decode_marker.cc:499: Skipped 27153 bytes before marker 0xd1
VipsJpeg: ./lib/jpegli/decode_marker.cc:554: Unexpected marker 0xd1
    at Sharp.toBuffer (/app/immich/server/node_modules/.pnpm/[email protected]/node_modules/sharp/lib/output.js:163:17)
    at MediaRepository.decodeImage (/app/immich/server/dist/repositories/media.repository.js:120:31)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async MediaService.decodeImage (/app/immich/server/dist/services/media.service.js:186:32)
    at async MediaService.extractOriginalImage (/app/immich/server/dist/services/media.service.js:197:44)
    at async MediaService.generateImageThumbnails (/app/immich/server/dist/services/media.service.js:213:32)
    at async MediaService.handleGenerateThumbnails (/app/immich/server/dist/services/media.service.js:153:25)
    at async JobService.onJobRun (/app/immich/server/dist/services/job.service.js:51:30)
    at async EventRepository.onEvent (/app/immich/server/dist/repositories/event.repository.js:91:13)
    at async /app/immich/server/node_modules/.pnpm/[email protected]/node_modules/bullmq/dist/cjs/classes/worker.js:570:32