Issue on video playback: WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses #3087

Closed
opened 2026-02-05 07:40:36 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @maltokyo on GitHub (May 9, 2024).

The bug

When playing back certain videos (press play button) nothing at all happens and video remains showing its thumbnail in full screen. Every time play button is pressed, a log entry is created as in the title.

I can share a sample video if needed, (standard movie file taken on a google pixel).

The OS that Immich Server is running on

Debian 12 latest updates applied

Version of Immich Server

v1.103.1

Version of Immich Mobile App

v1.103.1

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: ['start.sh', 'immich']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /mnt/===REDACTED===path/to/my/photo/library:/mnt/path/to/my/photo/library:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
      file: hwaccel.transcoding.yml
      service: quicksync # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    command: ['start.sh', 'microservices']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /mnt/===REDACTED===path/to/my/photo/library:/mnt/path/to/my/photo/library:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino
    extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
      file: hwaccel.ml.yml
      service: openvino # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
    restart: always

  database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always

  immich-folder-album-creator:
    container_name: immich_folder_album_creator
    image: salvoxia/immich-folder-album-creator:latest
    restart: unless-stopped
    environment:
      API_URL: http://immich_server:3001/api
      API_KEY: ===REDACTED===
      ROOT_PATH: /mnt/===REDACTED===path/to/my/photo/library
      CRON_EXPRESSION: "0 * * * *"
      TZ: Europe/Zurich
      ALBUM_LEVELS: 1

volumes:
  model-cache:

networks:
  default:
    external: true #needs to be created by other file
    name: mynetworkname

Your .env content

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./z_immich_metadata
DB_DATA_LOCATION=./z_immich_db

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

# Connection secrets for postgres and typesense. You should change these to random passwords
# TYPESENSE_API_KEY=REDACTED
DB_PASSWORD=REDACTED

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres

DB_DATABASE_NAME=immich

REDIS_HOSTNAME=immich_redis


###################################################################################
# Log message level - [simple|verbose]
###################################################################################

LOG_LEVEL=verbose

Reproduction steps

1. Run immich with attached docker-compose.yml and env files
2. Try to play videos
3. Some do not play as in the description, every time the "play button" is pressed, the log below is output.

Relevant log output

immich_server                | [Nest] 7  - 05/09/2024, 10:56:26 AM VERBOSE [LoggingInterceptor] [fl0zfqxa] GET /api/asset/file/0573b543-aa53-478c-a54e-a7114450654e 200 3.96ms undefined
immich_server                | [Nest] 7  - 05/09/2024, 10:56:26 AM    WARN [ExpressAdapter] [fl0zfqxa] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses

Additional information

Can share a sample movie file that causes this, but they are over 10MB so it doesnt allow me to upload here.

Originally created by @maltokyo on GitHub (May 9, 2024). ### The bug When playing back certain videos (press play button) nothing at all happens and video remains showing its thumbnail in full screen. Every time play button is pressed, a log entry is created as in the title. I can share a sample video if needed, (standard movie file taken on a google pixel). ### The OS that Immich Server is running on Debian 12 latest updates applied ### Version of Immich Server v1.103.1 ### Version of Immich Mobile App v1.103.1 ### Platform with the issue - [X] Server - [X] Web - [X] Mobile ### Your docker-compose.yml content ```YAML # # WARNING: Make sure to use the docker-compose.yml of the current release: # # https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml # # The compose file on main may not be compatible with the latest release. # name: immich services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: ['start.sh', 'immich'] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - /mnt/===REDACTED===path/to/my/photo/library:/mnt/path/to/my/photo/library:ro env_file: - .env ports: - 2283:3001 depends_on: - redis - database restart: always immich-microservices: container_name: immich_microservices image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding file: hwaccel.transcoding.yml service: quicksync # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding command: ['start.sh', 'microservices'] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - /mnt/===REDACTED===path/to/my/photo/library:/mnt/path/to/my/photo/library:ro env_file: - .env depends_on: - redis - database restart: always immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag. # Example tag: ${IMMICH_VERSION:-release}-cuda image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration file: hwaccel.ml.yml service: openvino # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - model-cache:/cache env_file: - .env restart: always redis: container_name: immich_redis image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672 restart: always database: container_name: immich_postgres image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - ${DB_DATA_LOCATION}:/var/lib/postgresql/data restart: always immich-folder-album-creator: container_name: immich_folder_album_creator image: salvoxia/immich-folder-album-creator:latest restart: unless-stopped environment: API_URL: http://immich_server:3001/api API_KEY: ===REDACTED=== ROOT_PATH: /mnt/===REDACTED===path/to/my/photo/library CRON_EXPRESSION: "0 * * * *" TZ: Europe/Zurich ALBUM_LEVELS: 1 volumes: model-cache: networks: default: external: true #needs to be created by other file name: mynetworkname ``` ### Your .env content ```Shell # You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables # The location where your uploaded files are stored UPLOAD_LOCATION=./z_immich_metadata DB_DATA_LOCATION=./z_immich_db # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=release # Connection secrets for postgres and typesense. You should change these to random passwords # TYPESENSE_API_KEY=REDACTED DB_PASSWORD=REDACTED # The values below this line do not need to be changed ################################################################################### DB_HOSTNAME=immich_postgres DB_USERNAME=postgres DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis ################################################################################### # Log message level - [simple|verbose] ################################################################################### LOG_LEVEL=verbose ``` ### Reproduction steps ```bash 1. Run immich with attached docker-compose.yml and env files 2. Try to play videos 3. Some do not play as in the description, every time the "play button" is pressed, the log below is output. ``` ### Relevant log output ```shell immich_server | [Nest] 7 - 05/09/2024, 10:56:26 AM VERBOSE [LoggingInterceptor] [fl0zfqxa] GET /api/asset/file/0573b543-aa53-478c-a54e-a7114450654e 200 3.96ms undefined immich_server | [Nest] 7 - 05/09/2024, 10:56:26 AM WARN [ExpressAdapter] [fl0zfqxa] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses ``` ### Additional information Can share a sample movie file that causes this, but they are over 10MB so it doesnt allow me to upload here.
Author
Owner

@maltokyo commented on GitHub (May 9, 2024):

hi @bo0tzz - could I suggest to reopen this one and close the other one - the error is the same from nest, but I think the cause is something completely different.

@maltokyo commented on GitHub (May 9, 2024): hi @bo0tzz - could I suggest to reopen this one and close the other one - the error is the same from `nest`, but I think the cause is something completely different.
Author
Owner

@maltokyo commented on GitHub (May 15, 2024):

Could someone please reopen? This is quiet a serious bug, videos do not playback.

@maltokyo commented on GitHub (May 15, 2024): Could someone please reopen? This is quiet a serious bug, videos do not playback.
Author
Owner

@maltokyo commented on GitHub (Jun 4, 2024):

@bo0tzz - I still have this issue, is it possible to reopen?

@maltokyo commented on GitHub (Jun 4, 2024): @bo0tzz - I still have this issue, is it possible to reopen?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#3087