"Error loading image" displayed for a file and metadata extraction fails
Author: 1oh1Created Jul 5, 2026Updated Sep 16, 2026
I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
- Yes
The bug
The OS that Immich Server is running on
dockge LXC on Proxmox VE 9.2.3
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}
cap_add:
- CAP_PERFMON
devices:
- /dev/dri/:/dev/dri/
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}:/usr/src/app/upload
- type: volume
source: cifs_volume_immich-media
target: /mnt/buntubox/Immich-media-readonly
read_only: true
- type: volume
source: cifs_volume_immich-transcode-test
target: /mnt/buntubox/transcode-test
read_only: false
bind:
propagation: shared
- /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}
# 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:
- .env
restart: always
healthcheck:
disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: --data-checksums
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
volumes:
model-cache: null
cifs_volume_immich-media:
driver: local
driver_opts:
type: cifs
o: username=xxxxxxxxxx,password=xxxxxxxxxx,uid=0,gid=0,vers=3.1.1
device: //buntubox/sharing/Immich-media
cifs_volume_immich-transcode-test:
driver: local
driver_opts:
type: cifs
o: username=xxxxxxxxxx,password=xxxxxxxxxx,uid=0,gid=0,vers=3.1.1
device: //buntubox/sharing/transcode-test
networks: {}
Your .env content
UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./postgres
IMMICH_VERSION=release
# THIS BREAKS LOCAL ACCESS if set to true: https://github.com/immich-app/immich/pull/28279/changes
# https://github.com/community-scripts/ProxmoxVE/pull/13600
IMMICH_HELMET_FILE=false
DB_PASSWORD=xxxxxxxxxx
# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
Reproduction steps
Steps to reproduce:
- Download test video file to NAS
- Open Immich website
- Configure a new external library that contains test video file
- Scan external library
- Notice there's no thumbnail on test video file
- Duplicate test video file on NAS and retry external library scan
- Notice there's no thumbnail on duplicate video file as well
Relevant log output
**Error logs on external library scan:**
[Nest] 24 - 07/05/2026, 4:07:42 PM LOG [Api:LibraryService~w47g662p] Starting to scan library 69687ba9-bab0-4f93-9489-c4f43b364a99
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Starting disk crawl of 1 import path(s) for library 69687ba9-bab0-4f93-9489-c4f43b364a99...
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Checking 19 asset(s) against import paths and exclusion patterns in library 69687ba9-bab0-4f93-9489-c4f43b364a99...
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] 0 asset(s) out of 19 were offlined due to import paths and/or exclusion pattern(s) in library 69687ba9-bab0-4f93-9489-c4f43b364a99
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Scanning library 69687ba9-bab0-4f93-9489-c4f43b364a99 for assets missing from disk...
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Queued check of 19 of 19 (100.0 %) existing asset(s) so far in library 69687ba9-bab0-4f93-9489-c4f43b364a99
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Finished queuing 19 asset check(s) for library 69687ba9-bab0-4f93-9489-c4f43b364a99
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Crawled 20 file(s) so far: 1 of current batch of 20 will be imported to library 69687ba9-bab0-4f93-9489-c4f43b364a99...
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Finished disk crawl, 20 file(s) found on disk and queued 1 file(s) for import into 69687ba9-bab0-4f93-9489-c4f43b364a99
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Checked existing asset(s): 0 offlined, 0 onlined, 0 updated, 19 unchanged of current batch of 19 (Total progress: 19 of 19, 100.0 %) in library 69687ba9-bab0-4f93-9489-c4f43b364a99.
[Nest] 6 - 07/05/2026, 4:07:42 PM LOG [Microservices:LibraryService] Imported 1 (20 done so far) file(s) into library 69687ba9-bab0-4f93-9489-c4f43b364a99
Query failed : {
durationMs: 3.0396630000323057,
error: PostgresError: value "5516939362" is out of range for type integer
at ErrorResponse (file:///usr/src/app/server/node_modules/.pnpm/[email protected]/node_modules/postgres/src/connection.js:815:30)
at handle (file:///usr/src/app/server/node_modules/.pnpm/[email protected]/node_modules/postgres/src/connection.js:489:6)
at Socket.data (file:///usr/src/app/server/node_modules/.pnpm/[email protected]/node_modules/postgres/src/connection.js:324:9)
at Socket.emit (node:events:508:28)
at addChunk (node:internal/streams/readable:563:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
at Readable.push (node:internal/streams/readable:394:5)
at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
severity_local: 'ERROR',
severity: 'ERROR',
code: '22003',
where: "unnamed portal parameter $27 = '...'",
file: 'numutils.c',
line: '314',
routine: 'pg_strtoint32'
},
sql: 'with "audio" as (insert into "asset_audio" ("assetId", "bitrate", "index", "profile", "codecName") values ($1, $2, $3, $4, $5) on conflict ("assetId") do update set "bitrate" = "asset_audio"."bitrate", "index" = "asset_audio"."index", "profile" = "asset_audio"."profile", "codecName" = "asset_audio"."codecName"), "video" as (insert into "asset_video" ("assetId", "bitrate", "frameCount", "timeBase", "index", "profile", "level", "colorPrimaries", "colorTransfer", "colorMatrix", "dvProfile", "dvLevel", "dvBlSignalCompatibilityId", "codecName", "formatName", "formatLongName", "pixelFormat") values ($6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22) on conflict ("assetId") do update set "bitrate" = "asset_video"."bitrate", "timeBase" = "asset_video"."timeBase", "index" = "asset_video"."index", "profile" = "asset_video"."profile", "level" = "asset_video"."level", "colorPrimaries" = "asset_video"."colorPrimaries", "colorTransfer" = "asset_video"."colorTransfer", "colorMatrix" = "asset_video"."colorMatrix", "dvProfile" = "asset_video"."dvProfile", "dvLevel" = "asset_video"."dvLevel", "dvBlSignalCompatibilityId" = "asset_video"."dvBlSignalCompatibilityId", "codecName" = "asset_video"."codecName", "formatName" = "asset_video"."formatName", "formatLongName" = "asset_video"."formatLongName", "pixelFormat" = "asset_video"."pixelFormat"), "keyframe" as (insert into "asset_keyframe" ("assetId", "totalDuration", "packetCount", "outputFrames", "pts", "accDuration", "ownDuration") values ($23, $24, $25, $26, $27, $28, $29) on conflict ("assetId") do update set "pts" = "asset_keyframe"."pts", "accDuration" = "asset_keyframe"."accDuration", "ownDuration" = "asset_keyframe"."ownDuration", "totalDuration" = "asset_keyframe"."totalDuration", "packetCount" = "asset_keyframe"."packetCount", "outputFrames" = "asset_keyframe"."outputFrames") insert into "asset_exif" ("assetId", "dateTimeOriginal", "modifyDate", "timeZone", "latitude", "longitude", "country", "state", "city", "fileSizeInByte", "exifImageHeight", "exifImageWidth", "orientation", "projectionType", "bitsPerSample", "colorspace", "make", "model", "fps", "iso", "exposureTime", "lensModel", "fNumber", "focalLength", "description", "profileDescription", "rating", "livePhotoCID", "autoStackId", "tags") values ($30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59) on conflict ("assetId") do update set "description" = case when $60 = any("asset_exif"."lockedProperties") then "asset_exif"."description" else "excluded"."description" end, "exifImageWidth" = case when $61 = any("asset_exif"."lockedProperties") then "asset_exif"."exifImageWidth" else "excluded"."exifImageWidth" end, "exifImageHeight" = case when $62 = any("asset_exif"."lockedProperties") then "asset_exif"."exifImageHeight" else "excluded"."exifImageHeight" end, "fileSizeInByte" = case when $63 = any("asset_exif"."lockedProperties") then "asset_exif"."fileSizeInByte" else "excluded"."fileSizeInByte" end, "orientation" = case when $64 = any("asset_exif"."lockedProperties") then "asset_exif"."orientation" else "excluded"."orientation" end, "dateTimeOriginal" = case when $65 = any("asset_exif"."lockedProperties") then "asset_exif"."dateTimeOriginal" else "excluded"."dateTimeOriginal" end, "modifyDate" = case when $66 = any("asset_exif"."lockedProperties") then "asset_exif"."modifyDate" else "excluded"."modifyDate" end, "timeZone" = case when $67 = any("asset_exif"."lockedProperties") then "asset_exif"."timeZone" else "excluded"."timeZone" end, "latitude" = case when $68 = any("asset_exif"."lockedProperties") then "asset_exif"."latitude" else "excluded"."latitude" end, "longitude" = case when $69 = any("asset_exif"."lockedProperties") then "asset_exif"."longitude" else "excluded"."longitude" end, "projectionType" = case when $70 = any("asset_exif"."lockedProperties") then "asset_exif"."projectionType" else "excluded"."projectionType" end, "city" = case when $71 = any("asset_exif"."lockedProperties") then "asset_exif"."city" else "excluded"."city" end, "livePhotoCID" = case when $72 = any("asset_exif"."lockedProperties") then "asset_exif"."livePhotoCID" else "excluded"."livePhotoCID" end, "autoStackId" = case when $73 = any("asset_exif"."lockedProperties") then "asset_exif"."autoStackId" else "excluded"."autoStackId" end, "state" = case when $74 = any("asset_exif"."lockedProperties") then "asset_exif"."state" else "excluded"."state" end, "country" = case when $75 = any("asset_exif"."lockedProperties") then "asset_exif"."country" else "excluded"."country" end, "make" = case when $76 = any("asset_exif"."lockedProperties") then "asset_exif"."make" else "excluded"."make" end, "model" = case when $77 = any("asset_exif"."lockedProperties") then "asset_exif"."model" else "excluded"."model" end, "lensModel" = case when $78 = any("asset_exif"."lockedProperties") then "asset_exif"."lensModel" else "excluded"."lensModel" end, "fNumber" = case when $79 = any("asset_exif"."lockedProperties") then "asset_exif"."fNumber" else "excluded"."fNumber" end, "focalLength" = case when $80 = any("asset_exif"."lockedProperties") then "asset_exif"."focalLength" else "excluded"."focalLength" end, "iso" = case when $81 = any("asset_exif"."lockedProperties") then "asset_exif"."iso" else "excluded"."iso" end, "exposureTime" = case when $82 = any("asset_exif"."lockedProperties") then "asset_exif"."exposureTime" else "excluded"."exposureTime" end, "profileDescription" = case when $83 = any("asset_exif"."lockedProperties") then "asset_exif"."profileDescription" else "excluded"."profileDescription" end, "colorspace" = case when $84 = any("asset_exif"."lockedProperties") then "asset_exif"."colorspace" else "excluded"."colorspace" end, "bitsPerSample" = case when $85 = any("asset_exif"."lockedProperties") then "asset_exif"."bitsPerSample" else "excluded"."bitsPerSample" end, "rating" = case when $86 = any("asset_exif"."lockedProperties") then "asset_exif"."rating" else "excluded"."rating" end, "fps" = case when $87 = any("asset_exif"."lockedProperties") then "asset_exif"."fps" else "excluded"."fps" end, "tags" = case when $88 = any("asset_exif"."lockedProperties") then "asset_exif"."tags" else "excluded"."tags" end',
params: [
'1b989650-2ee0-47cc-b53d-b90bd1545d79',
135349,
1,
2,
'aac',
'1b989650-2ee0-47cc-b53d-b90bd1545d79',
0,
0,
90000,
0,
2,
153,
9,
18,
9,
null,
null,
null,
'hevc',
'mpegts',
'MPEG-TS (MPEG-2 Transport Stream)',
'yuv420p10le',
'1b989650-2ee0-47cc-b53d-b90bd1545d79',
26762830,
17830,
17840,
[
5516939362, 5517012936, 5517086509, 5517158581, 5517164587,
5517236659, 5517254677, 5517328251, 5517397320, 5517469392,
5517541464, 5517547470, 5517619542, 5517625548, 5517697620,
5517769692, 5517844767, 5517919842, 5517951373, 5518023445,
5518098520, 5518148070, 5518223145, 5518295217, 5518340262,
5518415337, 5518487409, 5518560982, 5518625547, 5518697619,
5518769691, 5518777198, 5518852273, 5518870291, 5518939360,
5518951372, 5519026447, 5519027949, 5519100021, 5519127048,
5519200621, 5519275696, 5519281702, 5519287708, 5519293714,
5519302723, 5519338759, 5519371792, 5519407828, 5519440861,
5519472393, 5519517438, 5519592513, 5519667588, 5519741161,
5519816236, 5519828248, 5519900320, 5519907828, 5519982903,
5520054975, 5520082002, 5520154074, 5520226146, 5520298218,
5520314734, 5520389809, 5520461881, 5520493413, 5520565485,
5520592512, 5520667587, 5520709629, 5520781701, 5520853773,
5520928848, 5520991911, 5521062481, 5521134553, 5521209628,
5521278697, 5521350769, 5521422841, 5521440859, 5521515934,
5521591009, 5521666084, 5521739658, 5521813231, 5521840258,
5521912330, 5521987405, 5522062480, 5522080498, 5522155573,
5522230648, 5522305723, 5522346264, 5522383801, 5522401819,
... 360 more items
],
[
39026, 121581, 186124, 258172, 274683, 339226, 364743,
427785, 507338, 568879, 640927, 657438, 723482, 735490,
797031, 869079, 954636, 1029686, 1061207, 1122748, 1203802,
1257838, 1329886, 1404936, 1449966, 1516010, 1586557, 1664609,
1735156, 1796697, 1868745, 1886757, 1955803, 1979819, 2038358,
2060873, 2131420, 2137424, 2198965, 2236490, 2307037, 2385089,
2391093, 2397097, 2403101, 2412107, 2448131, 2481153, 2517177,
2550199, 2581720, 2626750, 2694295, 2775349, 2848898, 2919445,
2937457, 2998998, 3017010, 3084555, 3153601, 3191126, 3252667,
3324715, 3396763, 3423781, 3495829, 3560372, 3602400, 3663941,
3701466, 3766009, 3818544, 3880085, 3952133, 4030185, 4100732,
4171279, 4232820, 4307870, 4376916, 4448964, 4521012, 4549531,
4615575, 4692126, 4771679, 4843727, 4918777, 4948797, 5010338,
5089891, 5164941, 5188957, 5256502, 5334554, 5414107, 5454634,
5492159, 5510171,
... 360 more items
],
[
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
... 360 more items
],
'1b989650-2ee0-47cc-b53d-b90bd1545d79',
2017-06-11T08:54:21.428Z,
2017-06-11T08:54:21.428Z,
'UTC',
null,
null,
null,
null,
null,
774133052,
2160,
3840,
'1',
null,
null,
null,
null,
null,
59.94005994005994,
null,
null,
null,
null,
null,
'',
null,
null,
null,
null,
null,
'description',
'exifImageWidth',
'exifImageHeight',
'fileSizeInByte',
'orientation',
'dateTimeOriginal',
'modifyDate',
'timeZone',
'latitude',
'longitude',
'projectionType',
'city',
'livePhotoCID',
'autoStackId',
'state',
'country',
'make',
'model',
'lensModel',
'fNumber',
'focalLength',
'iso',
'exposureTime',
'profileDescription',
'colorspace',
'bitsPerSample',
'rating',
'fps',
'tags'
]
}
[Nest] 6 - 07/05/2026, 4:07:45 PM ERROR [Microservices:{"id":"1b989650-2ee0-47cc-b53d-b90bd1545d79","source":"upload"}] Unable to run job handler (AssetExtractMetadata): PostgresError: value "5516939362" is out of range for type integer
PostgresError: value "5516939362" is out of range for type integer
at ErrorResponse (file:///usr/src/app/server/node_modules/.pnpm/[email protected]/node_modules/postgres/src/connection.js:815:30)
at handle (file:///usr/src/app/server/node_modules/.pnpm/[email protected]/node_modules/postgres/src/connection.js:489:6)
at Socket.data (file:///usr/src/app/server/node_modules/.pnpm/[email protected]/node_modules/postgres/src/connection.js:324:9)
at Socket.emit (node:events:508:28)
at addChunk (node:internal/streams/readable:563:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
at Readable.push (node:internal/streams/readable:394:5)
at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
**Error logs on clicking on video with no thumbnail:**
[Nest] 24 - 07/05/2026, 4:10:50 PM ERROR [Api:ErrorInterceptor~lp6v9y09] Unknown error: Error: no result
Error: no result
at SelectQueryBuilderImpl.executeTakeFirstOrThrow (/usr/src/app/server/node_modules/.pnpm/[email protected]/node_modules/kysely/dist/cjs/query-builder/select-query-builder.js:331:19)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
at async PersonService.getFacesById (/usr/src/app/server/dist/services/person.service.js:93:23)
Additional information
No response
Source: immich-app/immich