[PR #24424] [MERGED] fix(server): update exiftool-vendored to v34 for more robust metadata extraction #17867

Closed
opened 2026-02-05 16:28:49 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/24424
Author: @skatsubo
Created: 12/6/2025
Status: Merged
Merged: 12/6/2025
Merged by: @alextran1502

Base: mainHead: fix/bump-exiftool


📝 Commits (1)

  • 7be7544 fix(server): update exiftool-vendored to v34 for more robust metadata extraction

📊 Changes

3 files changed (+22 additions, -21 deletions)

View changed files

📝 e2e/package.json (+1 -1)
📝 pnpm-lock.yaml (+20 -19)
📝 server/package.json (+1 -1)

📄 Description

Description

Bump exiftool-vendored v33 -> v34 to fix spurious shutdown of exiftool workers upon encountering multiple timeouts.

Upstream ticket:

Fixes #23890
Fixes #24302

How Has This Been Tested?

Tested on an Immich instance with limited CPU, high concurrency, sample video from immich#17574:

  • on main: emits timeouts and "startup task failed", eventually BatchCluster gets shut down, then each metadata read fails due to "BatchCluster has ended"
  • this PR: emits timeouts, no "startup task failed", no BatchCluster shutdown, keeps metadata processing
  1. Deploy Immich
  immich-server:
    cpus: 1
    environment:
      - NODE_DEBUG=exiftool-vendored
      - IMMICH_LOG_LEVEL=debug
  1. Limit CPU: 1 core.
  2. Increase metadata extraction concurrency: 25.
  3. Add a new external library.
  4. In the external library make 100 copies of the video from immich#17574.
VIDEO='video-ee-immich#17574.mp4'
for i in $(seq -w 0 99) ; do
  cp "$VIDEO" "$i-$VIDEO"
done
  1. Scan the external library.
Log: main
  • Error: timeout: waited 20000ms
  • EXIFTOOL-VENDORED 8: BatchCluster.end() { gracefully: true }
  • Error: BatchCluster has ended, cannot enqueue
[Nest] 23  - 12/06/2025, 12:20:00 PM     LOG [Api:LibraryService~lqxvir8i] Starting to scan library 5bd66993-5c3f-4f15-abba-6c1621621b7e
[Nest] 23  - 12/06/2025, 12:20:00 PM   DEBUG [Api:LoggingInterceptor~lqxvir8i] POST /api/libraries/5bd66993-5c3f-4f15-abba-6c1621621b7e/scan 204 8.46ms ::ffff:192.168.117.1
[Nest] 8  - 12/06/2025, 12:20:00 PM   DEBUG [Microservices:LibraryService] Validating import paths for library 5bd66993-5c3f-4f15-abba-6c1621621b7e...
[Nest] 8  - 12/06/2025, 12:20:00 PM     LOG [Microservices:LibraryService] Starting disk crawl of 1 import path(s) for library 5bd66993-5c3f-4f15-abba-6c1621621b7e...
[Nest] 8  - 12/06/2025, 12:20:00 PM     LOG [Microservices:LibraryService] Library 5bd66993-5c3f-4f15-abba-6c1621621b7e is empty, no need to check assets
[Nest] 8  - 12/06/2025, 12:20:00 PM     LOG [Microservices:LibraryService] Crawled 102 file(s) so far: 102 of current batch of 102 will be imported to library 5bd66993-5c3f-4f15-abba-6c1621621b7e...
[Nest] 8  - 12/06/2025, 12:20:00 PM     LOG [Microservices:LibraryService] Finished disk crawl, 102 file(s) found on disk and queued 102 file(s) for import into 5bd66993-5c3f-4f15-abba-6c1621621b7e
[Nest] 8  - 12/06/2025, 12:20:00 PM     LOG [Microservices:LibraryService] Imported 102 (102 done so far) file(s) into library 5bd66993-5c3f-4f15-abba-6c1621621b7e
[Nest] 8  - 12/06/2025, 12:20:00 PM   DEBUG [Microservices:LibraryService] Queuing sidecar discovery for 102 asset(s)
[Nest] 8  - 12/06/2025, 12:20:00 PM   DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update  asset dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c: /exiftool/00-video-ee-immich#17574.mp4
...
[Nest] 8  - 12/06/2025, 12:20:01 PM   DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update  asset 0126e8c8-70e0-47db-973d-e2c36f6acbfd: /exiftool/05-video-ee-immich#17574.mp4
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 38 }
[Nest] 8  - 12/06/2025, 12:20:01 PM   DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update  asset 863e16a9-b2a4-4952-b5fa-b50baf640c00: /exiftool/07-video-ee-immich#17574.mp4
...
[Nest] 8  - 12/06/2025, 12:20:01 PM   DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update  asset 84b6eebc-0107-4165-a4ba-fc7b5f86ab64: /exiftool/video-ee-immich#17574.mp4
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 64 }
[Nest] 8  - 12/06/2025, 12:20:02 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
[Nest] 8  - 12/06/2025, 12:20:03 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/00-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/db/b5/dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c-preview.jpeg
[Nest] 8  - 12/06/2025, 12:20:03 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/00-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/db/b5/dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c-thumbnail.webp
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 142 }
[Nest] 8  - 12/06/2025, 12:20:04 PM     LOG [Microservices:MediaService] Transcoding video dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c without hardware acceleration
[Nest] 8  - 12/06/2025, 12:20:04 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -i /exiftool/00-video-ee-immich#17574.mp4 -y -c:v h264 -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map_metadata -1 -v verbose -vf scale=-2:720 -preset ultrafast -crf 23 /data/encoded-video/7a18f962-7c77-4a35-a165-c8fbb4291e65/db/b5/dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
[Nest] 8  - 12/06/2025, 12:20:05 PM   DEBUG [Microservices:DuplicateService] Found 12 duplicates for asset dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 191 }
[Nest] 8  - 12/06/2025, 12:20:05 PM   DEBUG [Microservices:PersonService] 0 faces detected in /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/db/b5/dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c-preview.jpeg
[Nest] 8  - 12/06/2025, 12:20:05 PM   DEBUG [Microservices:OcrService] Processed 0 OCR result(s) for dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c
[Nest] 8  - 12/06/2025, 12:20:06 PM   DEBUG [Microservices:MediaRepository] Transcoding 7.11% done, estimated 26s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 192 }
[Nest] 8  - 12/06/2025, 12:20:08 PM   DEBUG [Microservices:MediaRepository] Transcoding 13.56% done, estimated 22s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 193 }
[Nest] 8  - 12/06/2025, 12:20:09 PM   DEBUG [Microservices:MediaRepository] Transcoding 18.67% done, estimated 21s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 194 }
[Nest] 8  - 12/06/2025, 12:20:11 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 195 }
[Nest] 8  - 12/06/2025, 12:20:12 PM   DEBUG [Microservices:MediaRepository] Transcoding 24.67% done, estimated 22s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
[Nest] 8  - 12/06/2025, 12:20:13 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/03-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/d2/00/d200d6c0-c605-4074-8122-bce449aa3a18-preview.jpeg
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 200 }
[Nest] 8  - 12/06/2025, 12:20:14 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 215 }
[Nest] 8  - 12/06/2025, 12:20:16 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/01-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/d2/b2/d2b216c9-00b2-43f6-90b7-799c5d0481ec-preview.jpeg
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 219 }
[Nest] 8  - 12/06/2025, 12:20:17 PM   DEBUG [Microservices:MediaRepository] Transcoding 29.78% done, estimated 28s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 229 }
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 234 }
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 235 }
[Nest] 8  - 12/06/2025, 12:20:22 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 238 }
[Nest] 8  - 12/06/2025, 12:20:23 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/02-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/c3/f8/c3f8cde7-bcc9-4e28-824a-b769afd5a1f6-preview.jpeg
[Nest] 8  - 12/06/2025, 12:20:24 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 241 }
[Nest] 8  - 12/06/2025, 12:20:26 PM   DEBUG [Microservices:MediaRepository] Transcoding 35.11% done, estimated 41s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 243 }
BatchProcess(192).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/05-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(192).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(192).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 244 }
BatchProcess(193).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/06-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(193).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(193).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 258 }
BatchProcess(194).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/07-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
[Nest] 8  - 12/06/2025, 12:20:31 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
BatchProcess(194).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(194).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 259 }
[Nest] 8  - 12/06/2025, 12:20:32 PM   DEBUG [Microservices:MediaRepository] Transcoding 40.44% done, estimated 44s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 261 }
BatchProcess(195).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/10-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(195).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(195).terminate(): force-killing still-running child.
BatchProcess(38).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/09-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(38).terminate(): force-killing still-running child.
BatchProcess(200).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/14-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(200).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(200).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 262 }
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 276 }
BatchProcess(215).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/12-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(215).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(215).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 280 }
BatchProcess(219).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/11-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(219).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(219).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 282 }
BatchProcess(229).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/13-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(229).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(229).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 283 }
BatchProcess(234).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/15-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(234).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(234).terminate(): force-killing still-running child.
BatchProcess(142).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/16-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(142).terminate(): force-killing still-running child.
BatchProcess(235).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/18-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(235).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms
BatchProcess(235).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 284 }
BatchProcess(191).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/20-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(191).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 285 }
[Nest] 8  - 12/06/2025, 12:20:45 PM    WARN [Microservices:MetadataRepository] Error reading exif data (/exiftool/17-video-ee-immich#17574.mp4): Error: BatchCluster has ended, cannot enqueue -json
-ee
...
/exiftool/17-video-ee-immich#17574.mp4
-ignoreMinorErrors
-execute

Error: BatchCluster has ended, cannot enqueue -json
-ee
...
/exiftool/17-video-ee-immich#17574.mp4
-ignoreMinorErrors
-execute

    at BatchCluster.enqueueTask (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchCluster.js:150:25)
    at f (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@33.5.0/node_modules/exiftool-vendored/dist/ExifTool.js:458:38)
    at async g (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@33.5.0/node_modules/exiftool-vendored/dist/AsyncRetry.js:8:20)
BatchProcess(238).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/17-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 20000ms
      at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(238).onError(): startup task failed: Error: timeout: waited 20000ms
BatchCluster.onStartError(): Error: timeout: waited 20000ms

EXIFTOOL-VENDORED 8: BatchCluster.end() { gracefully: true }

BatchProcess(238).terminate(): force-killing still-running child.
[Nest] 8  - 12/06/2025, 12:20:45 PM   DEBUG [Microservices:MetadataService] No timezone information found for asset b80e6796-c5d8-402c-912c-9052c75725e7: /exiftool/17-video-ee-immich#17574.mp4
[Nest] 8  - 12/06/2025, 12:20:45 PM   DEBUG [Microservices:MetadataService] No exif date time found, falling back on 2025-12-06T11:39:41.170+00:00, earliest of file creation and modification for asset b80e6796-c5d8-402c-912c-9052c75725e7: /exiftool/17-video-ee-immich#17574.mp4
[Nest] 8  - 12/06/2025, 12:20:45 PM   DEBUG [Microservices:MediaRepository] Transcoding 45.56% done, estimated 49s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4
[Nest] 8  - 12/06/2025, 12:20:46 PM    WARN [Microservices:MetadataRepository] Error reading exif data (/exiftool/30-video-ee-immich#17574.mp4): Error: BatchCluster has ended, cannot enqueue -json
-ee
...
/exiftool/30-video-ee-immich#17574.mp4
-ignoreMinorErrors
-execute

Error: BatchCluster has ended, cannot enqueue -json
-ee
...
/exiftool/30-video-ee-immich#17574.mp4
-ignoreMinorErrors
-execute

    at BatchCluster.enqueueTask (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchCluster.js:150:25)
    at f (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@33.5.0/node_modules/exiftool-vendored/dist/ExifTool.js:458:38)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async g (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@33.5.0/node_modules/exiftool-vendored/dist/AsyncRetry.js:8:20)
Log: this PR
  • Error: timeout: waited 30000ms
  • No other issues
[Nest] 22  - 12/06/2025, 12:26:01 PM     LOG [Api:LibraryService~n9r3gs2s] Starting to scan library 97d84a49-4aab-4426-b0bd-5e760f25063f
[Nest] 22  - 12/06/2025, 12:26:01 PM   DEBUG [Api:LoggingInterceptor~n9r3gs2s] POST /api/libraries/97d84a49-4aab-4426-b0bd-5e760f25063f/scan 204 17.69ms ::ffff:192.168.117.1
[Nest] 7  - 12/06/2025, 12:26:01 PM   DEBUG [Microservices:LibraryService] Validating import paths for library 97d84a49-4aab-4426-b0bd-5e760f25063f...
[Nest] 7  - 12/06/2025, 12:26:01 PM     LOG [Microservices:LibraryService] Starting disk crawl of 1 import path(s) for library 97d84a49-4aab-4426-b0bd-5e760f25063f...
[Nest] 7  - 12/06/2025, 12:26:01 PM     LOG [Microservices:LibraryService] Crawled 102 file(s) so far: 102 of current batch of 102 will be imported to library 97d84a49-4aab-4426-b0bd-5e760f25063f...
[Nest] 7  - 12/06/2025, 12:26:01 PM     LOG [Microservices:LibraryService] Finished disk crawl, 102 file(s) found on disk and queued 102 file(s) for import into 97d84a49-4aab-4426-b0bd-5e760f25063f
[Nest] 7  - 12/06/2025, 12:26:01 PM     LOG [Microservices:LibraryService] Library 97d84a49-4aab-4426-b0bd-5e760f25063f is empty, no need to check assets
[Nest] 7  - 12/06/2025, 12:26:01 PM     LOG [Microservices:LibraryService] Imported 102 (102 done so far) file(s) into library 97d84a49-4aab-4426-b0bd-5e760f25063f
[Nest] 7  - 12/06/2025, 12:26:01 PM   DEBUG [Microservices:LibraryService] Queuing sidecar discovery for 102 asset(s)
[Nest] 7  - 12/06/2025, 12:26:01 PM   DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update  asset b400d985-cf8f-40bb-aff5-7b3d707c8bb1: /exiftool/01-video-ee-immich#17574.mp4
...
[Nest] 7  - 12/06/2025, 12:26:01 PM   DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update  asset 7793f013-679e-4215-95fe-6e6eb86b03dd: /exiftool/06-video-ee-immich#17574.mp4
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 37 }
[Nest] 7  - 12/06/2025, 12:26:01 PM   DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update  asset 58a70b62-9da9-4863-93a4-ba64c816bb64: /exiftool/05-video-ee-immich#17574.mp4
...
[Nest] 7  - 12/06/2025, 12:26:02 PM   DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update  asset 66dc0ddb-94c0-4399-88f1-3687012928bb: /exiftool/video-ee-immich#17574.mp4
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 63 }
[Nest] 7  - 12/06/2025, 12:26:04 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
[Nest] 7  - 12/06/2025, 12:26:04 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/01-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/b4/00/b400d985-cf8f-40bb-aff5-7b3d707c8bb1-preview.jpeg
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 83 }
[Nest] 7  - 12/06/2025, 12:26:04 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/01-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/b4/00/b400d985-cf8f-40bb-aff5-7b3d707c8bb1-thumbnail.webp
[Nest] 7  - 12/06/2025, 12:26:06 PM     LOG [Microservices:MediaService] Transcoding video b400d985-cf8f-40bb-aff5-7b3d707c8bb1 without hardware acceleration
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 144 }
[Nest] 7  - 12/06/2025, 12:26:06 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -i /exiftool/01-video-ee-immich#17574.mp4 -y -c:v h264 -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map_metadata -1 -v verbose -vf scale=-2:720 -preset ultrafast -crf 23 /data/encoded-video/7a18f962-7c77-4a35-a165-c8fbb4291e65/b4/00/b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4
[Nest] 7  - 12/06/2025, 12:26:06 PM   DEBUG [Microservices:PersonService] 0 faces detected in /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/b4/00/b400d985-cf8f-40bb-aff5-7b3d707c8bb1-preview.jpeg
[Nest] 7  - 12/06/2025, 12:26:06 PM   DEBUG [Microservices:DuplicateService] Found 12 duplicates for asset b400d985-cf8f-40bb-aff5-7b3d707c8bb1
[Nest] 7  - 12/06/2025, 12:26:07 PM   DEBUG [Microservices:OcrService] Processed 0 OCR result(s) for b400d985-cf8f-40bb-aff5-7b3d707c8bb1
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 191 }
[Nest] 7  - 12/06/2025, 12:26:08 PM   DEBUG [Microservices:MediaRepository] Transcoding 5.78% done, estimated 32s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4
[Nest] 7  - 12/06/2025, 12:26:08 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 192 }
[Nest] 7  - 12/06/2025, 12:26:09 PM   DEBUG [Microservices:MediaRepository] Transcoding 11.78% done, estimated 28s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4
[Nest] 7  - 12/06/2025, 12:26:10 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/00-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/55/c9/55c912dd-21c5-447a-8e4f-bec5cfd0f696-preview.jpeg
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 210 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 211 }
[Nest] 7  - 12/06/2025, 12:26:12 PM   DEBUG [Microservices:MediaRepository] Transcoding 17.33% done, estimated 31s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 212 }
[Nest] 7  - 12/06/2025, 12:26:14 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 214 }
[Nest] 7  - 12/06/2025, 12:26:16 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/06-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/77/93/7793f013-679e-4215-95fe-6e6eb86b03dd-preview.jpeg
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 227 }
[Nest] 7  - 12/06/2025, 12:26:17 PM   DEBUG [Microservices:MediaRepository] Transcoding 22.44% done, estimated 38s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 249 }
[Nest] 7  - 12/06/2025, 12:26:19 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 251 }
[Nest] 7  - 12/06/2025, 12:26:21 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/00-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/55/c9/55c912dd-21c5-447a-8e4f-bec5cfd0f696-thumbnail.webp
[Nest] 7  - 12/06/2025, 12:26:21 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/03-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/f0/36/f03644df-02ba-412d-807b-a18d5adb2300-preview.jpeg
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 257 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 276 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 285 }
[Nest] 7  - 12/06/2025, 12:26:25 PM   DEBUG [Microservices:MediaRepository] Transcoding 27.56% done, estimated 54s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4
[Nest] 7  - 12/06/2025, 12:26:26 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 287 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 288 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 289 }
[Nest] 7  - 12/06/2025, 12:26:31 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 306 }
[Nest] 7  - 12/06/2025, 12:26:34 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 308 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 310 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 312 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 323 }
BatchProcess(192).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/07-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(192).terminate(): force-killing still-running child.
[Nest] 7  - 12/06/2025, 12:26:41 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 339 }
BatchProcess(210).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/05-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(210).terminate(): force-killing still-running child.
[Nest] 7  - 12/06/2025, 12:26:42 PM   DEBUG [Microservices:MediaRepository] Transcoding 32.67% done, estimated 1m, 15s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4
[Nest] 7  - 12/06/2025, 12:26:42 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/06-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/77/93/7793f013-679e-4215-95fe-6e6eb86b03dd-thumbnail.webp
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 350 }
BatchProcess(211).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/09-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(211).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 351 }
BatchProcess(212).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/12-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(212).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 368 }
BatchProcess(214).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/11-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(214).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 371 }
BatchProcess(227).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/13-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(227).terminate(): force-killing still-running child.
[Nest] 7  - 12/06/2025, 12:26:50 PM   DEBUG [Microservices:MediaRepository] Transcoding 37.78% done, estimated 1m, 33s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4
BatchProcess(83).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/14-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(83).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 376 }
BatchProcess(249).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/15-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
BatchProcess(249).terminate(): force-killing still-running child.
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 377 }
EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 379 }

...

[Nest] 7  - 12/06/2025, 12:31:05 PM    WARN [Microservices:MetadataRepository] Error reading exif data (/exiftool/90-video-ee-immich#17574.mp4): Error: timeout: waited 30000ms
waited 30000ms
    at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
    at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
    at listOnTimeout (node:internal/timers:588:17)
    at process.processTimers (node:internal/timers:523:7)
BatchProcess(1054).terminate(): force-killing still-running child.
[Nest] 7  - 12/06/2025, 12:31:05 PM   DEBUG [Microservices:MetadataService] No timezone information found for asset e50a126e-f8f5-41fb-916a-301387caa374: /exiftool/90-video-ee-immich#17574.mp4
[Nest] 7  - 12/06/2025, 12:31:05 PM   DEBUG [Microservices:MetadataService] No exif date time found, falling back on 2025-12-06T11:39:41.610+00:00, earliest of file creation and modification for asset e50a126e-f8f5-41fb-916a-301387caa374: /exiftool/90-video-ee-immich#17574.mp4
BatchProcess(1133).onError() {
  reason: 'timeout',
  task: '-json\n' +
    '-ee\n' +
    ...
    '/exiftool/91-video-ee-immich#17574.mp4\n' +
    '-ignoreMinorErrors\n' +
    '-execute\n',
  error: waited 30000ms
      at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
      at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
      at listOnTimeout (node:internal/timers:588:17)
      at process.processTimers (node:internal/timers:523:7)
}
[Nest] 7  - 12/06/2025, 12:31:06 PM    WARN [Microservices:MetadataRepository] Error reading exif data (/exiftool/91-video-ee-immich#17574.mp4): Error: timeout: waited 30000ms
waited 30000ms
    at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38)
    at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94)
    at listOnTimeout (node:internal/timers:588:17)
    at process.processTimers (node:internal/timers:523:7)
[Nest] 7  - 12/06/2025, 12:31:06 PM   DEBUG [Microservices:MetadataService] No timezone information found for asset d1e38532-c427-45fe-97b2-7efec5551664: /exiftool/91-video-ee-immich#17574.mp4
[Nest] 7  - 12/06/2025, 12:31:06 PM   DEBUG [Microservices:MetadataService] No exif date time found, falling back on 2025-12-06T11:39:41.615+00:00, earliest of file creation and modification for asset d1e38532-c427-45fe-97b2-7efec5551664: /exiftool/91-video-ee-immich#17574.mp4
BatchProcess(1133).terminate(): force-killing still-running child.
[Nest] 7  - 12/06/2025, 12:31:07 PM   DEBUG [Microservices:MediaRepository] Transcoding 27.33% done, estimated 5m, 27s remaining for output 55c912dd-21c5-447a-8e4f-bec5cfd0f696.mp4
[Nest] 7  - 12/06/2025, 12:31:07 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/13-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/a2/26/a2267530-6086-462a-ab45-4188e91b1d10-thumbnail.webp
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/14-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/01/aa/01aac60f-86b0-4cd6-8012-5f3c755600f1-preview.jpeg
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:PersonService] 0 faces detected in /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/5f/56/5f562c4b-4ba0-4e25-8d41-ecb0e1fe319e-preview.jpeg
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/15-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/13/12/1312adcf-a5e7-45a1-81b3-c3504313e744-preview.jpeg
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:PersonService] 0 faces detected in /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/c3/7b/c37ba4ca-9a78-4cf1-bfad-423e6a9d0e55-preview.jpeg
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:OcrService] Processed 0 OCR result(s) for 5f562c4b-4ba0-4e25-8d41-ecb0e1fe319e
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:MediaRepository] Transcoding 32.89% done, estimated 5m, 2s remaining for output 55c912dd-21c5-447a-8e4f-bec5cfd0f696.mp4
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:DuplicateService] Found 24 duplicates for asset 5f562c4b-4ba0-4e25-8d41-ecb0e1fe319e
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:DuplicateService] Found 24 duplicates for asset c37ba4ca-9a78-4cf1-bfad-423e6a9d0e55
[Nest] 7  - 12/06/2025, 12:31:08 PM   DEBUG [Microservices:OcrService] Processed 0 OCR result(s) for c37ba4ca-9a78-4cf1-bfad-423e6a9d0e55
[Nest] 7  - 12/06/2025, 12:31:09 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/15-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/13/12/1312adcf-a5e7-45a1-81b3-c3504313e744-thumbnail.webp
[Nest] 7  - 12/06/2025, 12:31:10 PM   DEBUG [Microservices:MediaRepository] Transcoding 39.56% done, estimated 2m, 16s remaining for output 55c912dd-21c5-447a-8e4f-bec5cfd0f696.mp4
[Nest] 7  - 12/06/2025, 12:31:10 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
...
[Nest] 7  - 12/06/2025, 12:31:10 PM   DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478
...
[Nest] 7  - 12/06/2025, 12:46:25 PM     LOG [Microservices:MediaService] Transcoding video 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4 without hardware acceleration
[Nest] 7  - 12/06/2025, 12:46:25 PM   DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -i /exiftool/99-video-ee-immich#17574.mp4 -y -c:v h264 -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map_metadata -1 -v verbose -vf scale=-2:720 -preset ultrafast -crf 23 /data/encoded-video/7a18f962-7c77-4a35-a165-c8fbb4291e65/1b/95/1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4.mp4
[Nest] 7  - 12/06/2025, 12:46:26 PM   DEBUG [Microservices:MediaRepository] Transcoding 10.44% done, estimated 8s remaining for output 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4.mp4
...
[Nest] 7  - 12/06/2025, 12:46:34 PM   DEBUG [Microservices:MediaRepository] Transcoding 89.33% done, estimated 1s remaining for output 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4.mp4
[Nest] 7  - 12/06/2025, 12:46:34 PM   DEBUG [Microservices:MediaRepository] Transcoding 96.00% done for output 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4.mp4
[Nest] 7  - 12/06/2025, 12:46:34 PM     LOG [Microservices:MediaService] Successfully encoded 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4

Please describe to which degree, if any, an LLM was used in creating this pull request.

None.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/24424 **Author:** [@skatsubo](https://github.com/skatsubo) **Created:** 12/6/2025 **Status:** ✅ Merged **Merged:** 12/6/2025 **Merged by:** [@alextran1502](https://github.com/alextran1502) **Base:** `main` ← **Head:** `fix/bump-exiftool` --- ### 📝 Commits (1) - [`7be7544`](https://github.com/immich-app/immich/commit/7be75448659cdf3c19f741015c32eaa9881e70b6) fix(server): update exiftool-vendored to v34 for more robust metadata extraction ### 📊 Changes **3 files changed** (+22 additions, -21 deletions) <details> <summary>View changed files</summary> 📝 `e2e/package.json` (+1 -1) 📝 `pnpm-lock.yaml` (+20 -19) 📝 `server/package.json` (+1 -1) </details> ### 📄 Description ## Description Bump exiftool-vendored v33 -> v34 to fix spurious shutdown of exiftool workers upon encountering multiple timeouts. Upstream ticket: - https://github.com/photostructure/exiftool-vendored.js/issues/312 Fixes #23890 Fixes #24302 ## How Has This Been Tested? Tested on an Immich instance with limited CPU, high concurrency, sample video from [immich#17574](https://github.com/immich-app/immich/discussions/17574): - on main: emits timeouts and "startup task failed", eventually BatchCluster gets shut down, then each metadata read fails due to "BatchCluster has ended" - this PR: emits timeouts, no "startup task failed", no BatchCluster shutdown, keeps metadata processing 1. Deploy Immich ```yml immich-server: cpus: 1 environment: - NODE_DEBUG=exiftool-vendored - IMMICH_LOG_LEVEL=debug ``` 2. Limit CPU: 1 core. 3. Increase metadata extraction concurrency: 25. 4. Add a new external library. 5. In the external library make 100 copies of the video from [immich#17574](https://github.com/immich-app/immich/discussions/17574). ```sh VIDEO='video-ee-immich#17574.mp4' for i in $(seq -w 0 99) ; do cp "$VIDEO" "$i-$VIDEO" done ``` 6. Scan the external library. <details><summary>Log: main</summary> - `Error: timeout: waited 20000ms` - `EXIFTOOL-VENDORED 8: BatchCluster.end() { gracefully: true }` - `Error: BatchCluster has ended, cannot enqueue` ```log [Nest] 23 - 12/06/2025, 12:20:00 PM LOG [Api:LibraryService~lqxvir8i] Starting to scan library 5bd66993-5c3f-4f15-abba-6c1621621b7e [Nest] 23 - 12/06/2025, 12:20:00 PM DEBUG [Api:LoggingInterceptor~lqxvir8i] POST /api/libraries/5bd66993-5c3f-4f15-abba-6c1621621b7e/scan 204 8.46ms ::ffff:192.168.117.1 [Nest] 8 - 12/06/2025, 12:20:00 PM DEBUG [Microservices:LibraryService] Validating import paths for library 5bd66993-5c3f-4f15-abba-6c1621621b7e... [Nest] 8 - 12/06/2025, 12:20:00 PM LOG [Microservices:LibraryService] Starting disk crawl of 1 import path(s) for library 5bd66993-5c3f-4f15-abba-6c1621621b7e... [Nest] 8 - 12/06/2025, 12:20:00 PM LOG [Microservices:LibraryService] Library 5bd66993-5c3f-4f15-abba-6c1621621b7e is empty, no need to check assets [Nest] 8 - 12/06/2025, 12:20:00 PM LOG [Microservices:LibraryService] Crawled 102 file(s) so far: 102 of current batch of 102 will be imported to library 5bd66993-5c3f-4f15-abba-6c1621621b7e... [Nest] 8 - 12/06/2025, 12:20:00 PM LOG [Microservices:LibraryService] Finished disk crawl, 102 file(s) found on disk and queued 102 file(s) for import into 5bd66993-5c3f-4f15-abba-6c1621621b7e [Nest] 8 - 12/06/2025, 12:20:00 PM LOG [Microservices:LibraryService] Imported 102 (102 done so far) file(s) into library 5bd66993-5c3f-4f15-abba-6c1621621b7e [Nest] 8 - 12/06/2025, 12:20:00 PM DEBUG [Microservices:LibraryService] Queuing sidecar discovery for 102 asset(s) [Nest] 8 - 12/06/2025, 12:20:00 PM DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update asset dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c: /exiftool/00-video-ee-immich#17574.mp4 ... [Nest] 8 - 12/06/2025, 12:20:01 PM DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update asset 0126e8c8-70e0-47db-973d-e2c36f6acbfd: /exiftool/05-video-ee-immich#17574.mp4 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 38 } [Nest] 8 - 12/06/2025, 12:20:01 PM DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update asset 863e16a9-b2a4-4952-b5fa-b50baf640c00: /exiftool/07-video-ee-immich#17574.mp4 ... [Nest] 8 - 12/06/2025, 12:20:01 PM DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update asset 84b6eebc-0107-4165-a4ba-fc7b5f86ab64: /exiftool/video-ee-immich#17574.mp4 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 64 } [Nest] 8 - 12/06/2025, 12:20:02 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 [Nest] 8 - 12/06/2025, 12:20:03 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/00-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/db/b5/dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c-preview.jpeg [Nest] 8 - 12/06/2025, 12:20:03 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/00-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/db/b5/dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c-thumbnail.webp EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 142 } [Nest] 8 - 12/06/2025, 12:20:04 PM LOG [Microservices:MediaService] Transcoding video dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c without hardware acceleration [Nest] 8 - 12/06/2025, 12:20:04 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -i /exiftool/00-video-ee-immich#17574.mp4 -y -c:v h264 -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map_metadata -1 -v verbose -vf scale=-2:720 -preset ultrafast -crf 23 /data/encoded-video/7a18f962-7c77-4a35-a165-c8fbb4291e65/db/b5/dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 [Nest] 8 - 12/06/2025, 12:20:05 PM DEBUG [Microservices:DuplicateService] Found 12 duplicates for asset dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 191 } [Nest] 8 - 12/06/2025, 12:20:05 PM DEBUG [Microservices:PersonService] 0 faces detected in /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/db/b5/dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c-preview.jpeg [Nest] 8 - 12/06/2025, 12:20:05 PM DEBUG [Microservices:OcrService] Processed 0 OCR result(s) for dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c [Nest] 8 - 12/06/2025, 12:20:06 PM DEBUG [Microservices:MediaRepository] Transcoding 7.11% done, estimated 26s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 192 } [Nest] 8 - 12/06/2025, 12:20:08 PM DEBUG [Microservices:MediaRepository] Transcoding 13.56% done, estimated 22s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 193 } [Nest] 8 - 12/06/2025, 12:20:09 PM DEBUG [Microservices:MediaRepository] Transcoding 18.67% done, estimated 21s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 194 } [Nest] 8 - 12/06/2025, 12:20:11 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 195 } [Nest] 8 - 12/06/2025, 12:20:12 PM DEBUG [Microservices:MediaRepository] Transcoding 24.67% done, estimated 22s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 [Nest] 8 - 12/06/2025, 12:20:13 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/03-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/d2/00/d200d6c0-c605-4074-8122-bce449aa3a18-preview.jpeg EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 200 } [Nest] 8 - 12/06/2025, 12:20:14 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 215 } [Nest] 8 - 12/06/2025, 12:20:16 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/01-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/d2/b2/d2b216c9-00b2-43f6-90b7-799c5d0481ec-preview.jpeg EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 219 } [Nest] 8 - 12/06/2025, 12:20:17 PM DEBUG [Microservices:MediaRepository] Transcoding 29.78% done, estimated 28s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 229 } EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 234 } EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 235 } [Nest] 8 - 12/06/2025, 12:20:22 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 238 } [Nest] 8 - 12/06/2025, 12:20:23 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/02-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/c3/f8/c3f8cde7-bcc9-4e28-824a-b769afd5a1f6-preview.jpeg [Nest] 8 - 12/06/2025, 12:20:24 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 241 } [Nest] 8 - 12/06/2025, 12:20:26 PM DEBUG [Microservices:MediaRepository] Transcoding 35.11% done, estimated 41s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 243 } BatchProcess(192).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/05-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(192).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(192).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 244 } BatchProcess(193).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/06-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(193).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(193).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 258 } BatchProcess(194).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/07-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } [Nest] 8 - 12/06/2025, 12:20:31 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 BatchProcess(194).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(194).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 259 } [Nest] 8 - 12/06/2025, 12:20:32 PM DEBUG [Microservices:MediaRepository] Transcoding 40.44% done, estimated 44s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 261 } BatchProcess(195).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/10-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(195).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(195).terminate(): force-killing still-running child. BatchProcess(38).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/09-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(38).terminate(): force-killing still-running child. BatchProcess(200).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/14-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(200).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(200).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 262 } EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 276 } BatchProcess(215).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/12-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(215).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(215).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 280 } BatchProcess(219).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/11-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(219).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(219).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 282 } BatchProcess(229).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/13-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(229).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(229).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 283 } BatchProcess(234).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/15-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(234).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(234).terminate(): force-killing still-running child. BatchProcess(142).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/16-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(142).terminate(): force-killing still-running child. BatchProcess(235).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/18-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(235).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms BatchProcess(235).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 284 } BatchProcess(191).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/20-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(191).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 8: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 285 } [Nest] 8 - 12/06/2025, 12:20:45 PM WARN [Microservices:MetadataRepository] Error reading exif data (/exiftool/17-video-ee-immich#17574.mp4): Error: BatchCluster has ended, cannot enqueue -json -ee ... /exiftool/17-video-ee-immich#17574.mp4 -ignoreMinorErrors -execute Error: BatchCluster has ended, cannot enqueue -json -ee ... /exiftool/17-video-ee-immich#17574.mp4 -ignoreMinorErrors -execute at BatchCluster.enqueueTask (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchCluster.js:150:25) at f (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@33.5.0/node_modules/exiftool-vendored/dist/ExifTool.js:458:38) at async g (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@33.5.0/node_modules/exiftool-vendored/dist/AsyncRetry.js:8:20) BatchProcess(238).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/17-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 20000ms at BatchProcess._BatchProcess_onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:312:113) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchProcess.js:249:195) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(238).onError(): startup task failed: Error: timeout: waited 20000ms BatchCluster.onStartError(): Error: timeout: waited 20000ms EXIFTOOL-VENDORED 8: BatchCluster.end() { gracefully: true } BatchProcess(238).terminate(): force-killing still-running child. [Nest] 8 - 12/06/2025, 12:20:45 PM DEBUG [Microservices:MetadataService] No timezone information found for asset b80e6796-c5d8-402c-912c-9052c75725e7: /exiftool/17-video-ee-immich#17574.mp4 [Nest] 8 - 12/06/2025, 12:20:45 PM DEBUG [Microservices:MetadataService] No exif date time found, falling back on 2025-12-06T11:39:41.170+00:00, earliest of file creation and modification for asset b80e6796-c5d8-402c-912c-9052c75725e7: /exiftool/17-video-ee-immich#17574.mp4 [Nest] 8 - 12/06/2025, 12:20:45 PM DEBUG [Microservices:MediaRepository] Transcoding 45.56% done, estimated 49s remaining for output dbb5bb1a-fd54-46f4-ba6b-c198fe05c98c.mp4 [Nest] 8 - 12/06/2025, 12:20:46 PM WARN [Microservices:MetadataRepository] Error reading exif data (/exiftool/30-video-ee-immich#17574.mp4): Error: BatchCluster has ended, cannot enqueue -json -ee ... /exiftool/30-video-ee-immich#17574.mp4 -ignoreMinorErrors -execute Error: BatchCluster has ended, cannot enqueue -json -ee ... /exiftool/30-video-ee-immich#17574.mp4 -ignoreMinorErrors -execute at BatchCluster.enqueueTask (/usr/src/app/server/node_modules/.pnpm/batch-cluster@15.0.1/node_modules/batch-cluster/dist/BatchCluster.js:150:25) at f (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@33.5.0/node_modules/exiftool-vendored/dist/ExifTool.js:458:38) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async g (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@33.5.0/node_modules/exiftool-vendored/dist/AsyncRetry.js:8:20) ``` </details> <details><summary>Log: this PR</summary> - `Error: timeout: waited 30000ms` - No other issues ```log [Nest] 22 - 12/06/2025, 12:26:01 PM LOG [Api:LibraryService~n9r3gs2s] Starting to scan library 97d84a49-4aab-4426-b0bd-5e760f25063f [Nest] 22 - 12/06/2025, 12:26:01 PM DEBUG [Api:LoggingInterceptor~n9r3gs2s] POST /api/libraries/97d84a49-4aab-4426-b0bd-5e760f25063f/scan 204 17.69ms ::ffff:192.168.117.1 [Nest] 7 - 12/06/2025, 12:26:01 PM DEBUG [Microservices:LibraryService] Validating import paths for library 97d84a49-4aab-4426-b0bd-5e760f25063f... [Nest] 7 - 12/06/2025, 12:26:01 PM LOG [Microservices:LibraryService] Starting disk crawl of 1 import path(s) for library 97d84a49-4aab-4426-b0bd-5e760f25063f... [Nest] 7 - 12/06/2025, 12:26:01 PM LOG [Microservices:LibraryService] Crawled 102 file(s) so far: 102 of current batch of 102 will be imported to library 97d84a49-4aab-4426-b0bd-5e760f25063f... [Nest] 7 - 12/06/2025, 12:26:01 PM LOG [Microservices:LibraryService] Finished disk crawl, 102 file(s) found on disk and queued 102 file(s) for import into 97d84a49-4aab-4426-b0bd-5e760f25063f [Nest] 7 - 12/06/2025, 12:26:01 PM LOG [Microservices:LibraryService] Library 97d84a49-4aab-4426-b0bd-5e760f25063f is empty, no need to check assets [Nest] 7 - 12/06/2025, 12:26:01 PM LOG [Microservices:LibraryService] Imported 102 (102 done so far) file(s) into library 97d84a49-4aab-4426-b0bd-5e760f25063f [Nest] 7 - 12/06/2025, 12:26:01 PM DEBUG [Microservices:LibraryService] Queuing sidecar discovery for 102 asset(s) [Nest] 7 - 12/06/2025, 12:26:01 PM DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update asset b400d985-cf8f-40bb-aff5-7b3d707c8bb1: /exiftool/01-video-ee-immich#17574.mp4 ... [Nest] 7 - 12/06/2025, 12:26:01 PM DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update asset 7793f013-679e-4215-95fe-6e6eb86b03dd: /exiftool/06-video-ee-immich#17574.mp4 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 37 } [Nest] 7 - 12/06/2025, 12:26:01 PM DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update asset 58a70b62-9da9-4863-93a4-ba64c816bb64: /exiftool/05-video-ee-immich#17574.mp4 ... [Nest] 7 - 12/06/2025, 12:26:02 PM DEBUG [Microservices:MetadataService] Sidecar check found old=undefined, new=null will update asset 66dc0ddb-94c0-4399-88f1-3687012928bb: /exiftool/video-ee-immich#17574.mp4 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 63 } [Nest] 7 - 12/06/2025, 12:26:04 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 [Nest] 7 - 12/06/2025, 12:26:04 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/01-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/b4/00/b400d985-cf8f-40bb-aff5-7b3d707c8bb1-preview.jpeg EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 83 } [Nest] 7 - 12/06/2025, 12:26:04 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/01-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/b4/00/b400d985-cf8f-40bb-aff5-7b3d707c8bb1-thumbnail.webp [Nest] 7 - 12/06/2025, 12:26:06 PM LOG [Microservices:MediaService] Transcoding video b400d985-cf8f-40bb-aff5-7b3d707c8bb1 without hardware acceleration EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 144 } [Nest] 7 - 12/06/2025, 12:26:06 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -i /exiftool/01-video-ee-immich#17574.mp4 -y -c:v h264 -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map_metadata -1 -v verbose -vf scale=-2:720 -preset ultrafast -crf 23 /data/encoded-video/7a18f962-7c77-4a35-a165-c8fbb4291e65/b4/00/b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4 [Nest] 7 - 12/06/2025, 12:26:06 PM DEBUG [Microservices:PersonService] 0 faces detected in /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/b4/00/b400d985-cf8f-40bb-aff5-7b3d707c8bb1-preview.jpeg [Nest] 7 - 12/06/2025, 12:26:06 PM DEBUG [Microservices:DuplicateService] Found 12 duplicates for asset b400d985-cf8f-40bb-aff5-7b3d707c8bb1 [Nest] 7 - 12/06/2025, 12:26:07 PM DEBUG [Microservices:OcrService] Processed 0 OCR result(s) for b400d985-cf8f-40bb-aff5-7b3d707c8bb1 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 191 } [Nest] 7 - 12/06/2025, 12:26:08 PM DEBUG [Microservices:MediaRepository] Transcoding 5.78% done, estimated 32s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4 [Nest] 7 - 12/06/2025, 12:26:08 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 192 } [Nest] 7 - 12/06/2025, 12:26:09 PM DEBUG [Microservices:MediaRepository] Transcoding 11.78% done, estimated 28s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4 [Nest] 7 - 12/06/2025, 12:26:10 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/00-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/55/c9/55c912dd-21c5-447a-8e4f-bec5cfd0f696-preview.jpeg EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 210 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 211 } [Nest] 7 - 12/06/2025, 12:26:12 PM DEBUG [Microservices:MediaRepository] Transcoding 17.33% done, estimated 31s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 212 } [Nest] 7 - 12/06/2025, 12:26:14 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 214 } [Nest] 7 - 12/06/2025, 12:26:16 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/06-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/77/93/7793f013-679e-4215-95fe-6e6eb86b03dd-preview.jpeg EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 227 } [Nest] 7 - 12/06/2025, 12:26:17 PM DEBUG [Microservices:MediaRepository] Transcoding 22.44% done, estimated 38s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 249 } [Nest] 7 - 12/06/2025, 12:26:19 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 251 } [Nest] 7 - 12/06/2025, 12:26:21 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/00-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/55/c9/55c912dd-21c5-447a-8e4f-bec5cfd0f696-thumbnail.webp [Nest] 7 - 12/06/2025, 12:26:21 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/03-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/f0/36/f03644df-02ba-412d-807b-a18d5adb2300-preview.jpeg EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 257 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 276 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 285 } [Nest] 7 - 12/06/2025, 12:26:25 PM DEBUG [Microservices:MediaRepository] Transcoding 27.56% done, estimated 54s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4 [Nest] 7 - 12/06/2025, 12:26:26 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 287 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 288 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 289 } [Nest] 7 - 12/06/2025, 12:26:31 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 306 } [Nest] 7 - 12/06/2025, 12:26:34 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 308 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 310 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 312 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 323 } BatchProcess(192).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/07-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(192).terminate(): force-killing still-running child. [Nest] 7 - 12/06/2025, 12:26:41 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 339 } BatchProcess(210).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/05-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(210).terminate(): force-killing still-running child. [Nest] 7 - 12/06/2025, 12:26:42 PM DEBUG [Microservices:MediaRepository] Transcoding 32.67% done, estimated 1m, 15s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4 [Nest] 7 - 12/06/2025, 12:26:42 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/06-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/77/93/7793f013-679e-4215-95fe-6e6eb86b03dd-thumbnail.webp EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 350 } BatchProcess(211).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/09-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(211).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 351 } BatchProcess(212).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/12-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(212).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 368 } BatchProcess(214).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/11-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(214).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 371 } BatchProcess(227).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/13-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(227).terminate(): force-killing still-running child. [Nest] 7 - 12/06/2025, 12:26:50 PM DEBUG [Microservices:MediaRepository] Transcoding 37.78% done, estimated 1m, 33s remaining for output b400d985-cf8f-40bb-aff5-7b3d707c8bb1.mp4 BatchProcess(83).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/14-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(83).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 376 } BatchProcess(249).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/15-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } BatchProcess(249).terminate(): force-killing still-running child. EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 377 } EXIFTOOL-VENDORED 7: ProcessPoolManager.maybeSpawnProcs() started healthy child process { pid: 379 } ... [Nest] 7 - 12/06/2025, 12:31:05 PM WARN [Microservices:MetadataRepository] Error reading exif data (/exiftool/90-video-ee-immich#17574.mp4): Error: timeout: waited 30000ms waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) BatchProcess(1054).terminate(): force-killing still-running child. [Nest] 7 - 12/06/2025, 12:31:05 PM DEBUG [Microservices:MetadataService] No timezone information found for asset e50a126e-f8f5-41fb-916a-301387caa374: /exiftool/90-video-ee-immich#17574.mp4 [Nest] 7 - 12/06/2025, 12:31:05 PM DEBUG [Microservices:MetadataService] No exif date time found, falling back on 2025-12-06T11:39:41.610+00:00, earliest of file creation and modification for asset e50a126e-f8f5-41fb-916a-301387caa374: /exiftool/90-video-ee-immich#17574.mp4 BatchProcess(1133).onError() { reason: 'timeout', task: '-json\n' + '-ee\n' + ... '/exiftool/91-video-ee-immich#17574.mp4\n' + '-ignoreMinorErrors\n' + '-execute\n', error: waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) } [Nest] 7 - 12/06/2025, 12:31:06 PM WARN [Microservices:MetadataRepository] Error reading exif data (/exiftool/91-video-ee-immich#17574.mp4): Error: timeout: waited 30000ms waited 30000ms at #onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:309:38) at Timeout._onTimeout (/usr/src/app/server/node_modules/.pnpm/batch-cluster@16.0.0/node_modules/batch-cluster/dist/BatchProcess.js:230:94) at listOnTimeout (node:internal/timers:588:17) at process.processTimers (node:internal/timers:523:7) [Nest] 7 - 12/06/2025, 12:31:06 PM DEBUG [Microservices:MetadataService] No timezone information found for asset d1e38532-c427-45fe-97b2-7efec5551664: /exiftool/91-video-ee-immich#17574.mp4 [Nest] 7 - 12/06/2025, 12:31:06 PM DEBUG [Microservices:MetadataService] No exif date time found, falling back on 2025-12-06T11:39:41.615+00:00, earliest of file creation and modification for asset d1e38532-c427-45fe-97b2-7efec5551664: /exiftool/91-video-ee-immich#17574.mp4 BatchProcess(1133).terminate(): force-killing still-running child. [Nest] 7 - 12/06/2025, 12:31:07 PM DEBUG [Microservices:MediaRepository] Transcoding 27.33% done, estimated 5m, 27s remaining for output 55c912dd-21c5-447a-8e4f-bec5cfd0f696.mp4 [Nest] 7 - 12/06/2025, 12:31:07 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/13-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/a2/26/a2267530-6086-462a-ab45-4188e91b1d10-thumbnail.webp [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/14-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/01/aa/01aac60f-86b0-4cd6-8012-5f3c755600f1-preview.jpeg [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:PersonService] 0 faces detected in /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/5f/56/5f562c4b-4ba0-4e25-8d41-ecb0e1fe319e-preview.jpeg [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/15-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/13/12/1312adcf-a5e7-45a1-81b3-c3504313e744-preview.jpeg [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:PersonService] 0 faces detected in /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/c3/7b/c37ba4ca-9a78-4cf1-bfad-423e6a9d0e55-preview.jpeg [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:OcrService] Processed 0 OCR result(s) for 5f562c4b-4ba0-4e25-8d41-ecb0e1fe319e [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:MediaRepository] Transcoding 32.89% done, estimated 5m, 2s remaining for output 55c912dd-21c5-447a-8e4f-bec5cfd0f696.mp4 [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:DuplicateService] Found 24 duplicates for asset 5f562c4b-4ba0-4e25-8d41-ecb0e1fe319e [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:DuplicateService] Found 24 duplicates for asset c37ba4ca-9a78-4cf1-bfad-423e6a9d0e55 [Nest] 7 - 12/06/2025, 12:31:08 PM DEBUG [Microservices:OcrService] Processed 0 OCR result(s) for c37ba4ca-9a78-4cf1-bfad-423e6a9d0e55 [Nest] 7 - 12/06/2025, 12:31:09 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -skip_frame nointra -sws_flags accurate_rnd+full_chroma_int -i /exiftool/15-video-ee-immich#17574.mp4 -y -fps_mode vfr -frames:v 1 -update 1 -v verbose -vf fps=12:start_time=0:eof_action=pass:round=down,thumbnail=12,select=gt(scene\,0.1)-eq(prev_selected_n\,n)+isnan(prev_selected_n)+gt(n\,20),trim=end_frame=2,reverse,scale=-2:250:flags=lanczos+accurate_rnd+full_chroma_int:out_range=pc /data/thumbs/7a18f962-7c77-4a35-a165-c8fbb4291e65/13/12/1312adcf-a5e7-45a1-81b3-c3504313e744-thumbnail.webp [Nest] 7 - 12/06/2025, 12:31:10 PM DEBUG [Microservices:MediaRepository] Transcoding 39.56% done, estimated 2m, 16s remaining for output 55c912dd-21c5-447a-8e4f-bec5cfd0f696.mp4 [Nest] 7 - 12/06/2025, 12:31:10 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 ... [Nest] 7 - 12/06/2025, 12:31:10 PM DEBUG [Microservices:MapRepository] Request: 35.685063,139.706478 ... [Nest] 7 - 12/06/2025, 12:46:25 PM LOG [Microservices:MediaService] Transcoding video 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4 without hardware acceleration [Nest] 7 - 12/06/2025, 12:46:25 PM DEBUG [Microservices:MediaRepository] ffmpeg -n 10 /usr/bin/ffmpeg -i /exiftool/99-video-ee-immich#17574.mp4 -y -c:v h264 -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map_metadata -1 -v verbose -vf scale=-2:720 -preset ultrafast -crf 23 /data/encoded-video/7a18f962-7c77-4a35-a165-c8fbb4291e65/1b/95/1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4.mp4 [Nest] 7 - 12/06/2025, 12:46:26 PM DEBUG [Microservices:MediaRepository] Transcoding 10.44% done, estimated 8s remaining for output 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4.mp4 ... [Nest] 7 - 12/06/2025, 12:46:34 PM DEBUG [Microservices:MediaRepository] Transcoding 89.33% done, estimated 1s remaining for output 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4.mp4 [Nest] 7 - 12/06/2025, 12:46:34 PM DEBUG [Microservices:MediaRepository] Transcoding 96.00% done for output 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4.mp4 [Nest] 7 - 12/06/2025, 12:46:34 PM LOG [Microservices:MediaService] Successfully encoded 1b9557fd-4b3c-4f4f-ba7d-3db3fe63e9b4 ``` </details> ## Please describe to which degree, if any, an LLM was used in creating this pull request. None. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 16:28:49 +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#17867