Skip to content

Upgrading immich_postgres from 14-vectorchord0.3.0 to 14-vectorchord0.4.1-pgvectors0.2.0 fails on Rasperry Pi 5 #19272

Description

@kosi2801

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

  • Yes

The bug

I tried updating to the latest immich docker-compose.yml according to the latest release notes and also tried upgrading the postgres as suggested to use the new vectorchord 0.4.1/0.4.2 (14-vectorchord0.4.1-pgvectors0.2.0).

Unfortunately this fails at startup of the postgres container with

Using SSD storage
PostgreSQL Database directory appears to contain a database; Skipping initialization
2025-06-19 10:19:21.689 GMT [1] LOG:  skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-06-19 10:19:21.690 GMT [1] LOG:  skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
<jemalloc>: Unsupported system page size
<jemalloc>: Unsupported system page size
memory allocation of 16 bytes failed
...

Using the previous version 14-vectorchord0.3.0 works/worked without any issues (both with and without -pgvectors0.2.0) and gives following output:

Using SSD storage
PostgreSQL Database directory appears to contain a database; Skipping initialization
2025-06-19 10:20:17.019 GMT [1] LOG:  skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-06-19 10:20:17.019 GMT [1] LOG:  skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-06-19 10:20:21.880 UTC [1] LOG:  starting PostgreSQL 14.17 (Debian 14.17-1.pgdg120+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-06-19 10:20:21.881 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2025-06-19 10:20:21.881 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2025-06-19 10:20:21.889 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-06-19 10:20:21.895 UTC [31] LOG:  database system was shut down at 2025-06-19 10:19:21 UTC
2025-06-19 10:20:21.904 UTC [1] LOG:  database system is ready to accept connections

The server platform is Portainer/Docker on a Raspberry Pi 5 with 8GB RAM, Linux dockerpi 6.12.30-v8-16k+ #1879 SMP PREEMPT Fri May 23 13:30:44 BST 2025 aarch64 GNU/Linux.

The OS that Immich Server is running on

Raspberry Pi OS - Bookworm

Version of Immich Server

v1.135.0

Version of Immich Mobile App

1.135.0 build.201

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

#
# 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.

name: immich

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
    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /photo_archive:/mnt/media/photo_archive
    env_file:
      - stack.env
    ports:
      - '2283:2283'
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

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

  # script to automatically create albums from folders
  # see https://github.com/Salvoxia/immich-folder-album-creator?tab=readme-ov-file#docker-compose-example-passing-the-api-key-as-environment-variable
  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:2283/api
      API_KEY: "${IMMICH_API_KEY}"
      ROOT_PATH: /mnt/media/photo_archive
      # Run every day at 11pm
      CRON_EXPRESSION: "0 23 * * *"
      TZ: Europe/Vienna
      # Delete empty albums after each run
      SYNC_MODE: "1"
      
  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
#    image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.1-pgvectors0.2.0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
      # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
      # DB_STORAGE_TYPE: 'HDD'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always

volumes:
  model-cache:

Your .env content

UPLOAD_LOCATION=/photo
DB_DATA_LOCATION=./postgres
IMMICH_VERSION=release
DB_PASSWORD=removed
DB_USERNAME=removed
DB_DATABASE_NAME=not_immich
MACHINE_LEARNING_REQUEST_THREADS=1
IMMICH_API_KEY=aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQo=

Reproduction steps

  1. shut down existing immich stack on docker
  2. modify docker-compose.yml, replace the postgres-image from ghcr.io/immich-app/postgres:14-vectorchord0.3.0 with ghcr.io/immich-app/postgres:14-vectorchord0.4.1-pgvectors0.2.0
  3. start the immich stack again

Relevant log output

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions