Query params not working #5095

Closed
opened 2026-02-20 03:14:03 -05:00 by deekerman · 1 comment
Owner

Originally created by @hwaterke on GitHub (Mar 7, 2025).

I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

Query params do not seem to be working.

I tried to use the /stacks?primaryAssetId= API endpoint but the query param is ignored and not processed on the backend.

The OS that Immich Server is running on

docker - macOS

Version of Immich Server

v1.129.0

Version of Immich Mobile App

NA

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

Nothing special, it's the default docker compose when running make dev

#
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
#
# 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.

# For development see:
# - https://immich.app/docs/developer/setup
# - https://immich.app/docs/developer/troubleshooting

name: immich-dev

services:
  immich-server:
    container_name: immich_server
    command: ['/usr/src/app/bin/immich-dev']
    image: immich-server-dev:latest
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    build:
      context: ../
      dockerfile: server/Dockerfile
      target: dev
    restart: always
    volumes:
      - ../server:/usr/src/app
      - ../open-api:/usr/src/open-api
      - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
      - ${UPLOAD_LOCATION}/photos/upload:/usr/src/app/upload/upload
      - /usr/src/app/node_modules
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    environment:
      IMMICH_REPOSITORY: immich-app/immich
      IMMICH_REPOSITORY_URL: https://github.com/immich-app/immich
      IMMICH_SOURCE_REF: local
      IMMICH_SOURCE_COMMIT: af2efbdbbddc27cd06142f22253ccbbbbeec1f55
      IMMICH_SOURCE_URL: https://github.com/immich-app/immich/commit/af2efbdbbddc27cd06142f22253ccbbbbeec1f55
      IMMICH_BUILD: '9654404849'
      IMMICH_BUILD_URL: https://github.com/immich-app/immich/actions/runs/9654404849
      IMMICH_BUILD_IMAGE: development
      IMMICH_BUILD_IMAGE_URL: https://github.com/immich-app/immich/pkgs/container/immich-server
      IMMICH_THIRD_PARTY_SOURCE_URL: https://github.com/immich-app/immich/
      IMMICH_THIRD_PARTY_BUG_FEATURE_URL: https://github.com/immich-app/immich/issues
      IMMICH_THIRD_PARTY_DOCUMENTATION_URL: https://immich.app/docs
      IMMICH_THIRD_PARTY_SUPPORT_URL: https://immich.app/docs/third-party
    ulimits:
      nofile:
        soft: 1048576
        hard: 1048576
    ports:
      - 9230:9230
      - 9231:9231
      - 2283:2283
    depends_on:
      - redis
      - database
    healthcheck:
      disable: false

  immich-web:
    container_name: immich_web
    image: immich-web-dev:latest
    # Needed for rootless docker setup, see https://github.com/moby/moby/issues/45919
    # user: 0:0
    build:
      context: ../web
    command: ['/usr/src/app/bin/immich-web']
    env_file:
      - .env
    ports:
      - 3000:3000
      - 24678:24678
    volumes:
      - ../web:/usr/src/app
      - ../i18n:/usr/src/i18n
      - ../open-api/:/usr/src/open-api/
      # - ../../ui:/usr/ui
      - /usr/src/app/node_modules
    ulimits:
      nofile:
        soft: 1048576
        hard: 1048576
    restart: unless-stopped
    depends_on:
      - immich-server

  immich-machine-learning:
    container_name: immich_machine_learning
    image: immich-machine-learning-dev:latest
    # extends:
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference
    build:
      context: ../machine-learning
      dockerfile: Dockerfile
      args:
        - DEVICE=cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference
    ports:
      - 3003:3003
    volumes:
      - ../machine-learning:/usr/src/app
      - model-cache:/cache
    env_file:
      - .env
    depends_on:
      - database
    restart: unless-stopped
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
    healthcheck:
      test: redis-cli ping || exit 1

  database:
    container_name: immich_postgres
    image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data
    ports:
      - 5432:5432
    healthcheck:
      test: >-
        pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1;
        Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --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

  # set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics
  # immich-prometheus:
  #   container_name: immich_prometheus
  #   ports:
  #     - 9090:9090
  #   image: prom/prometheus
  #   volumes:
  #     - ./prometheus.yml:/etc/prometheus/prometheus.yml
  #     - prometheus-data:/prometheus

  # first login uses admin/admin
  # add data source for http://immich-prometheus:9090 to get started
  # immich-grafana:
  #   container_name: immich_grafana
  #   command: ['./run.sh', '-disable-reporting']
  #   ports:
  #     - 3000:3000
  #   image: grafana/grafana:10.3.3-ubuntu
  #   volumes:
  #     - grafana-data:/var/lib/grafana

volumes:
  model-cache:
  prometheus-data:
  grafana-data:

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=./library
# The location where your database files are stored
DB_DATA_LOCATION=./postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
TZ=Europe/Brussels

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

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=postgres

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

Reproduction steps

  1. Use postman or whatever tool to call http://localhost:2283/api/stacks?primaryAssetId=856382e4-58f4-4297-901c-601d0bcff3c0
  2. The query param is ignored

This might be the case for other Query params on the server but I only tested /stacks

The NestJS doc seems to indicate it requires extended parsing to support complex objects.
See https://docs.nestjs.com/controllers#query-parameters

Relevant log output


Additional information

Image

Image

Originally created by @hwaterke on GitHub (Mar 7, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug Query params do not seem to be working. I tried to use the `/stacks?primaryAssetId=` API endpoint but the query param is ignored and not processed on the backend. ### The OS that Immich Server is running on docker - macOS ### Version of Immich Server v1.129.0 ### Version of Immich Mobile App NA ### Platform with the issue - [x] Server - [ ] Web - [ ] Mobile ### Your docker-compose.yml content Nothing special, it's the default docker compose when running `make dev` ```YAML # # WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose # # 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. # For development see: # - https://immich.app/docs/developer/setup # - https://immich.app/docs/developer/troubleshooting name: immich-dev services: immich-server: container_name: immich_server command: ['/usr/src/app/bin/immich-dev'] image: immich-server-dev:latest # extends: # file: hwaccel.transcoding.yml # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding build: context: ../ dockerfile: server/Dockerfile target: dev restart: always volumes: - ../server:/usr/src/app - ../open-api:/usr/src/open-api - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload - ${UPLOAD_LOCATION}/photos/upload:/usr/src/app/upload/upload - /usr/src/app/node_modules - /etc/localtime:/etc/localtime:ro env_file: - .env environment: IMMICH_REPOSITORY: immich-app/immich IMMICH_REPOSITORY_URL: https://github.com/immich-app/immich IMMICH_SOURCE_REF: local IMMICH_SOURCE_COMMIT: af2efbdbbddc27cd06142f22253ccbbbbeec1f55 IMMICH_SOURCE_URL: https://github.com/immich-app/immich/commit/af2efbdbbddc27cd06142f22253ccbbbbeec1f55 IMMICH_BUILD: '9654404849' IMMICH_BUILD_URL: https://github.com/immich-app/immich/actions/runs/9654404849 IMMICH_BUILD_IMAGE: development IMMICH_BUILD_IMAGE_URL: https://github.com/immich-app/immich/pkgs/container/immich-server IMMICH_THIRD_PARTY_SOURCE_URL: https://github.com/immich-app/immich/ IMMICH_THIRD_PARTY_BUG_FEATURE_URL: https://github.com/immich-app/immich/issues IMMICH_THIRD_PARTY_DOCUMENTATION_URL: https://immich.app/docs IMMICH_THIRD_PARTY_SUPPORT_URL: https://immich.app/docs/third-party ulimits: nofile: soft: 1048576 hard: 1048576 ports: - 9230:9230 - 9231:9231 - 2283:2283 depends_on: - redis - database healthcheck: disable: false immich-web: container_name: immich_web image: immich-web-dev:latest # Needed for rootless docker setup, see https://github.com/moby/moby/issues/45919 # user: 0:0 build: context: ../web command: ['/usr/src/app/bin/immich-web'] env_file: - .env ports: - 3000:3000 - 24678:24678 volumes: - ../web:/usr/src/app - ../i18n:/usr/src/i18n - ../open-api/:/usr/src/open-api/ # - ../../ui:/usr/ui - /usr/src/app/node_modules ulimits: nofile: soft: 1048576 hard: 1048576 restart: unless-stopped depends_on: - immich-server immich-machine-learning: container_name: immich_machine_learning image: immich-machine-learning-dev:latest # extends: # file: hwaccel.ml.yml # service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference build: context: ../machine-learning dockerfile: Dockerfile args: - DEVICE=cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference ports: - 3003:3003 volumes: - ../machine-learning:/usr/src/app - model-cache:/cache env_file: - .env depends_on: - database restart: unless-stopped healthcheck: disable: false redis: container_name: immich_redis image: redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8 healthcheck: test: redis-cli ping || exit 1 database: container_name: immich_postgres image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data ports: - 5432:5432 healthcheck: test: >- pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --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 # set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics # immich-prometheus: # container_name: immich_prometheus # ports: # - 9090:9090 # image: prom/prometheus # volumes: # - ./prometheus.yml:/etc/prometheus/prometheus.yml # - prometheus-data:/prometheus # first login uses admin/admin # add data source for http://immich-prometheus:9090 to get started # immich-grafana: # container_name: immich_grafana # command: ['./run.sh', '-disable-reporting'] # ports: # - 3000:3000 # image: grafana/grafana:10.3.3-ubuntu # volumes: # - grafana-data:/var/lib/grafana volumes: model-cache: prometheus-data: grafana-data: ``` ### 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=./library # The location where your database files are stored DB_DATA_LOCATION=./postgres # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List TZ=Europe/Brussels # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=release # Connection secret for postgres. You should change it to a random password # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=postgres # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich ``` ### Reproduction steps 1. Use postman or whatever tool to call http://localhost:2283/api/stacks?primaryAssetId=856382e4-58f4-4297-901c-601d0bcff3c0 2. The query param is ignored This might be the case for other Query params on the server but I only tested `/stacks` The NestJS doc seems to indicate it requires extended parsing to support complex objects. See https://docs.nestjs.com/controllers#query-parameters ### Relevant log output ```shell ``` ### Additional information ![Image](https://github.com/user-attachments/assets/7f995da8-8b19-46ef-859b-c375fa258757) ![Image](https://github.com/user-attachments/assets/9366a18c-4116-426a-a177-d6887707ff1b)
Author
Owner

@JarFiles commented on GitHub (Mar 10, 2025):

I have the same issue

@JarFiles commented on GitHub (Mar 10, 2025): I have the same issue
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/immich#5095
No description provided.