immich icon indicating copy to clipboard operation
immich copied to clipboard

ffmpeg errors after upgrading to immich v1.114.0

Open edoardo-c opened this issue 1 year ago • 1 comments

The bug

I get ffmpeg errors after upgrading immich. When I manually run the GENERATE THUMBNAILS job for missing thumbnails get the error

[Nest] 7  - 09/07/2024, 11:08:35 PM   ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-preview): Error: VipsJpeg: Premature end of input file
[Nest] 7  - 09/07/2024, 11:08:35 PM   ERROR [Microservices:JobService] Error: VipsJpeg: Premature end of input file
    at Sharp.toFile (/usr/src/app/node_modules/sharp/lib/output.js:90:19)
    at MediaRepository.generateThumbnail (/usr/src/app/dist/repositories/media.repository.js:69:14)
    at MediaService.generateThumbnail (/usr/src/app/dist/services/media.service.js:176:48)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MediaService.handleGeneratePreview (/usr/src/app/dist/services/media.service.js:141:29)
    at async /usr/src/app/dist/services/job.service.js:148:36
    at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:394:28)
    at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:581:24)
[Nest] 7  - 09/07/2024, 11:08:35 PM   ERROR [Microservices:JobService] Object:
{
  "id": "81a4ea03-f365-4a73-b5dc-f6907a0065b9"
}

When I try to manually EXTRACT METADATA, I get the following error

[Nest] 7  - 09/07/2024, 11:13:02 PM   ERROR [Microservices:JobService] Unable to run job handler (metadataExtraction/metadata-extraction): Error: ffprobe exited with code 1
ffprobe version 6.0.1-Jellyfin Copyright (c) 2007-2023 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
[Nest] 7  - 09/07/2024, 11:13:02 PM   ERROR [Microservices:JobService] Object:
{
  "id": "ee50cc6a-f49e-4c8f-ad70-98972d68fd2c"
}

The docker-compose has not been altered since v1.113.1 and I do not use hardware acceleration. ML is running on a container outside of my NAS.

The OS that Immich Server is running on

Synology NAS

Version of Immich Server

v1.114.0

Version of Immich Mobile App

v1.114.0

Platform with the issue

  • [X] Server
  • [ ] Web
  • [ ] Mobile

Your docker-compose.yml content

---
services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    deploy:
      resources:
        limits:
          memory: '4G'
    volumes:
      - /volume1/homes/me/pics:/libraries/pics:ro
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs
      - ${ENCODED_VIDEO_LOCATION}:/usr/src/app/upload/encoded-video
      - ${PROFILE_LOCATION}:/usr/src/app/upload/profile
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always
    networks:
      demo:
        ipv4_address: 172.50.1.10
  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
    healthcheck:
      test: redis-cli ping || exit 1
    deploy:
    restart: always
    networks:
      demo:
        ipv4_address: 172.50.1.12
  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
      interval: 5m
      #start_interval: 30s
      start_period: 5m
    command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
    restart: always
    networks:
      demo:
        ipv4_address: 172.50.1.13
networks:
  demo:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 172.50.1.0/24

Your .env content

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
IMMICH_VERSION=v1.114.0
IMMICH_LOG_LEVEL=warn
CPU_CORES=4
IMMICH_ENV=production
UPLOAD_LOCATION=/volume1/docker/immich/immich_files
THUMB_LOCATION=/volume1/docker/immich/thumbs
ENCODED_VIDEO_LOCATION=/volume1/docker/immich/encoded-video
PROFILE_LOCATION=/volume1/docker/immich/profile
DB_DATA_LOCATION=/volume1/docker/immich/database/
TZ=Europe/Paris
DB_PASSWORD=<redacted>

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

Reproduction steps

  1. Click on the GENERATE missing THUMBNAILS job
  2. Click on the EXTRACT missing METADATA job

Relevant log output

A few more examples of logs

thumbnail generation

[Nest] 7  - 09/07/2024, 11:08:32 PM   ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-preview): Error: VipsJpeg: Premature end of input file
VipsJpeg: Premature end of input file
[Nest] 7  - 09/07/2024, 11:08:32 PM   ERROR [Microservices:JobService] Error: VipsJpeg: Premature end of input file
VipsJpeg: Premature end of input file
    at Sharp.toFile (/usr/src/app/node_modules/sharp/lib/output.js:90:19)
    at MediaRepository.generateThumbnail (/usr/src/app/dist/repositories/media.repository.js:69:14)
    at MediaService.generateThumbnail (/usr/src/app/dist/services/media.service.js:176:48)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MediaService.handleGeneratePreview (/usr/src/app/dist/services/media.service.js:141:29)
    at async /usr/src/app/dist/services/job.service.js:148:36
    at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:394:28)
    at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:581:24)
[Nest] 7  - 09/07/2024, 11:08:32 PM   ERROR [Microservices:JobService] Object:
{
  "id": "008b67a7-33cf-4db2-81f1-85ef4f96d38e"
}

[Nest] 7  - 09/07/2024, 11:08:32 PM   ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-preview): Error: Unknown error
[Nest] 7  - 09/07/2024, 11:08:32 PM   ERROR [Microservices:JobService] Error: Unknown error
    at Sharp.toFile (/usr/src/app/node_modules/sharp/lib/output.js:90:19)
    at MediaRepository.generateThumbnail (/usr/src/app/dist/repositories/media.repository.js:69:14)
    at MediaService.generateThumbnail (/usr/src/app/dist/services/media.service.js:176:48)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MediaService.handleGeneratePreview (/usr/src/app/dist/services/media.service.js:141:29)
    at async /usr/src/app/dist/services/job.service.js:148:36
    at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:394:28)
    at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:581:24)
[Nest] 7  - 09/07/2024, 11:08:32 PM   ERROR [Microservices:JobService] Object:
{
  "id": "2cff993a-e39d-4103-baf7-d3992b2acfa1"
}

[Nest] 7  - 09/07/2024, 11:08:33 PM   ERROR [Microservices:JobService] Unable to run job handler (thumbnailGeneration/generate-preview): Error: VipsJpeg: Premature end of input file
[Nest] 7  - 09/07/2024, 11:08:33 PM   ERROR [Microservices:JobService] Error: VipsJpeg: Premature end of input file
    at Sharp.toFile (/usr/src/app/node_modules/sharp/lib/output.js:90:19)
    at MediaRepository.generateThumbnail (/usr/src/app/dist/repositories/media.repository.js:69:14)
    at MediaService.generateThumbnail (/usr/src/app/dist/services/media.service.js:176:48)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MediaService.handleGeneratePreview (/usr/src/app/dist/services/media.service.js:141:29)
    at async /usr/src/app/dist/services/job.service.js:148:36
    at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:394:28)
    at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:581:24)
[Nest] 7  - 09/07/2024, 11:08:33 PM   ERROR [Microservices:JobService] Object:
{
  "id": "66d0f260-53ca-432a-b596-6f3b373951b5"
}

Metadata extraction

[Nest] 7  - 09/07/2024, 11:19:13 PM   ERROR [Microservices:JobService] Unable to run job handler (metadataExtraction/metadata-extraction): Error: ffprobe exited with code 1
ffprobe version 6.0.1-Jellyfin Copyright (c) 2007-2023 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x26d0a050180] stream 0, contradictionary STSC and STCO
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x26d0a050180] error reading header
/libraries/ed/personal/2003/2003-03/20030316-000000-0411.3gp: Invalid data found when processing input

[Nest] 7  - 09/07/2024, 11:19:13 PM   ERROR [Microservices:JobService] Error: ffprobe exited with code 1
ffprobe version 6.0.1-Jellyfin Copyright (c) 2007-2023 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x26d0a050180] stream 0, contradictionary STSC and STCO
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x26d0a050180] error reading header
/libraries/ed/personal/2003/2003-03/20030316-000000-0411.3gp: Invalid data found when processing input

    at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22)
    at ChildProcess.emit (node:events:519:28)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
[Nest] 7  - 09/07/2024, 11:19:13 PM   ERROR [Microservices:JobService] Object:
{
  "id": "ee50cc6a-f49e-4c8f-ad70-98972d68fd2c"
}


### Additional information

_No response_

edoardo-c avatar Sep 07 '24 21:09 edoardo-c

Can you help post the output of the docker ps command?

alextran1502 avatar Sep 08 '24 00:09 alextran1502

Hi @alextran1502,

The following are the immich containers that are running.

# docker ps|grep immich
04690ebd92d6   ghcr.io/immich-app/immich-server:v1.114.0          "tini -- /bin/bash s…"   10 hours ago   Up 10 hours (healthy)   0.0.0.0:2283->3001/tcp, :::2283->3001/tcp                                                                                                               immich_server
44abc27fe7e2   tensorchord/pgvecto-rs:pg14-v0.2.0                 "docker-entrypoint.s…"   10 hours ago   Up 10 hours (healthy)   5432/tcp                                                                                                                                                immich_postgres
482335ba5077   redis:6.2-alpine                                   "docker-entrypoint.s…"   10 hours ago   Up 10 hours (healthy)   6379/tcp                                                                                                                                                immich_redis

edoardo-c avatar Sep 08 '24 06:09 edoardo-c