immich server does not start after upgrade to 1.135.0 and vchord 0.4.2 #6301

Closed
opened 2026-02-05 12:09:57 +03:00 by OVERLORD · 0 comments
Owner

Originally created by @mvivaldi on GitHub (Jun 19, 2025).

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

  • Yes

The bug

Hi,
I upgraded immich to 1.135.0 (under kubernetes) and upgraded the postgres image from
ghcr.io/tensorchord/cloudnative-pgvecto.rs:16.5-v0.3.0
to:
ghcr.io/tensorchord/cloudnative-vectorchord:16.9-0.4.2
following the instruction in the thread here:
https://github.com/immich-app/immich-charts/issues/149#issuecomment-2904788845
I use cnpg for the database and after following this guide:
https://main.preview.immich.app/docs/administration/postgres-standalone/#migrating-from-pgvectors
the database is up and running
but in the log of immich server I found:

Initializing Immich v1.135.0
Detected CPU Cores: 16
Starting api worker
Starting microservices worker
[Nest] 6  - 06/19/2025, 4:11:07 PM     LOG [Microservices:EventRepository] Initialized websocket server
[Nest] 6  - 06/19/2025, 4:11:08 PM     LOG [Microservices:DatabaseRepository] Reindexing clip_index
[Nest] 6  - 06/19/2025, 4:11:08 PM     LOG [Microservices:DatabaseRepository] targetLists=256, current=256 for face_index of 159327 rows
[Nest] 16  - 06/19/2025, 4:11:08 PM     LOG [Api:EventRepository] Initialized websocket server
Postgres notice: {
  severity_local: 'INFO',
  severity: 'INFO',
  code: '00000',
  message: 'clustering: starting, using 4 threads, clustering 346186 vectors of 1152 dimension into 512 clusters, in 10 iterations',
  file: 'am_build.rs',
  line: '996',
  routine: 'vchord::index::am::am_build::make_internal_build'
}
Postgres notice: {
  severity_local: 'INFO',
  severity: 'INFO',
  code: '00000',
  message: 'clustering: iteration 1',
  file: 'am_build.rs',
  line: '1013',
  routine: 'vchord::index::am::am_build::make_internal_build::{{closure}}'
}
Postgres notice: {
  severity_local: 'INFO',
  severity: 'INFO',
  code: '00000',
  message: 'clustering: iteration 2',
  file: 'am_build.rs',
  line: '1013',
  routine: 'vchord::index::am::am_build::make_internal_build::{{closure}}'
}
Postgres notice: {
  severity_local: 'INFO',
  severity: 'INFO',
  code: '00000',
  message: 'clustering: iteration 3',
  file: 'am_build.rs',
  line: '1013',
  routine: 'vchord::index::am::am_build::make_internal_build::{{closure}}'
}

and after 10 iteration the container restart and the process begin again.
I found a similar output in this issue, but the problem seems unrelated:
https://github.com/immich-app/immich/discussions/17912

The OS that Immich Server is running on

microk8s on ubuntu 24.04

Version of Immich Server

v1.135.0

Version of Immich Mobile App

v1.135.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

this is my values.yaml:

immich:
  ## This chart relies on the common library chart from bjw-s
  ## You can find it at https://github.com/bjw-s/helm-charts/tree/main/charts/library/common
  ## Refer there for more detail about the supported values
  # These entries are shared between all the Immich components
  
  env:
    REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}'
    #DB_HOSTNAME: "{{ .Release.Name }}-postgresql"
    DB_HOSTNAME: "immich-postgres-rw"
    DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}"
    DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}"
    # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance
    DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}"
    #TYPESENSE_ENABLED: "{{ .Values.typesense.enabled }}"
    #TYPESENSE_API_KEY: "{{ .Values.typesense.env.TYPESENSE_API_KEY }}"
    #TYPESENSE_HOST: '{{ printf "%s-typesense" .Release.Name }}'
    #IMMICH_WEB_URL: '{{ printf "http://%s-web:3000" .Release.Name }}'
    #IMMICH_SERVER_URL: '{{ printf "http://%s-server:3001" .Release.Name }}'
    IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}'
    MACHINE_LEARNING_WORKER_TIMEOUT: 1500
    TZ: 'Europe/Rome'
  
  image:
    # renovate: datasource=github-releases depName=immich-app/immich
    tag: "v1.135.0"
  
  immich:
    persistence:
      # Main data store for all photos shared between different components.
      library:
        # Automatically creating the library volume is not supported by this chart
        # You have to specify an existing PVC to use
        existingClaim: immich-data
  
  postgresql:
    enabled: false
    
    primary:
      resources:
        limits:
          cpu: 6000m
          memory: 8192Mi
        requests:
          cpu: 2000m
          memory: 2048Mi
    
    image:
      registry: docker.io
      repository: tensorchord/pgvecto-rs
      tag: pg14-v0.2.0
    global:
      storageClass: local-path-immich
      postgresql:
        auth:
          username: immich
          database: immich
          password: immichpw
          postgresPassword: rootimmich
  
  redis:
    enabled: true
    image:
      registry: docker.io
      repository: bitnami/redis
      tag: 7.2.4-debian-11-r0
    global:
      storageClass: local-path-immich
    architecture: standalone
    auth:
      enabled: false
  
  
  
  server:
    enabled: true
    probes:
      liveness:
        spec:
          initialDelaySeconds: 120
      readiness:
        spec:
          initialDelaySeconds: 120
    image:
      repository: ghcr.io/immich-app/immich-server
      pullPolicy: IfNotPresent
    ingress:
      main:
        enabled: true
        annotations:
          # proxy-body-size is set to 0 to remove the body limit on file uploads
          nginx.ingress.kubernetes.io/proxy-body-size: "0"
        hosts:
          - host: immich.mydomain.net
            paths:
              - path: "/"
        tls:
          - secretName: cert
            hosts:
              - immich.mydomain.net
  
 
  
  machine-learning:
    enabled: true
    probes:
      liveness:
        spec:
          initialDelaySeconds: 240
          periodSeconds: 30
          timeoutSeconds: 5
          failureThreshold: 5
    image:
      repository: ghcr.io/immich-app/immich-machine-learning
      pullPolicy: IfNotPresent
    env:
      TRANSFORMERS_CACHE: /cache
    persistence:
      cache:
        enabled: true
        size: 10Gi
        # Optional: Set this to pvc to avoid downloading the ML models every start.
        type: pvc
        accessMode: ReadWriteOnce
        storageClass: local-path-immich

Your .env content

copied from the values.yaml:
  env:
    REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}'
    #DB_HOSTNAME: "{{ .Release.Name }}-postgresql"
    DB_HOSTNAME: "immich-postgres-rw"
    DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}"
    DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}"
    # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance
    DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}"
    #TYPESENSE_ENABLED: "{{ .Values.typesense.enabled }}"
    #TYPESENSE_API_KEY: "{{ .Values.typesense.env.TYPESENSE_API_KEY }}"
    #TYPESENSE_HOST: '{{ printf "%s-typesense" .Release.Name }}'
    #IMMICH_WEB_URL: '{{ printf "http://%s-web:3000" .Release.Name }}'
    #IMMICH_SERVER_URL: '{{ printf "http://%s-server:3001" .Release.Name }}'
    IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}'
    MACHINE_LEARNING_WORKER_TIMEOUT: 1500
    TZ: 'Europe/Rome'

Reproduction steps

Running a Kubernetes environment using the cnpg operator.

Relevant log output


Additional information

No response

Originally created by @mvivaldi on GitHub (Jun 19, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug Hi, I upgraded immich to 1.135.0 (under kubernetes) and upgraded the postgres image from ghcr.io/tensorchord/cloudnative-pgvecto.rs:16.5-v0.3.0 to: ghcr.io/tensorchord/cloudnative-vectorchord:16.9-0.4.2 following the instruction in the thread here: https://github.com/immich-app/immich-charts/issues/149#issuecomment-2904788845 I use cnpg for the database and after following this guide: https://main.preview.immich.app/docs/administration/postgres-standalone/#migrating-from-pgvectors the database is up and running but in the log of immich server I found: ``` Initializing Immich v1.135.0 Detected CPU Cores: 16 Starting api worker Starting microservices worker [Nest] 6 - 06/19/2025, 4:11:07 PM LOG [Microservices:EventRepository] Initialized websocket server [Nest] 6 - 06/19/2025, 4:11:08 PM LOG [Microservices:DatabaseRepository] Reindexing clip_index [Nest] 6 - 06/19/2025, 4:11:08 PM LOG [Microservices:DatabaseRepository] targetLists=256, current=256 for face_index of 159327 rows [Nest] 16 - 06/19/2025, 4:11:08 PM LOG [Api:EventRepository] Initialized websocket server Postgres notice: { severity_local: 'INFO', severity: 'INFO', code: '00000', message: 'clustering: starting, using 4 threads, clustering 346186 vectors of 1152 dimension into 512 clusters, in 10 iterations', file: 'am_build.rs', line: '996', routine: 'vchord::index::am::am_build::make_internal_build' } Postgres notice: { severity_local: 'INFO', severity: 'INFO', code: '00000', message: 'clustering: iteration 1', file: 'am_build.rs', line: '1013', routine: 'vchord::index::am::am_build::make_internal_build::{{closure}}' } Postgres notice: { severity_local: 'INFO', severity: 'INFO', code: '00000', message: 'clustering: iteration 2', file: 'am_build.rs', line: '1013', routine: 'vchord::index::am::am_build::make_internal_build::{{closure}}' } Postgres notice: { severity_local: 'INFO', severity: 'INFO', code: '00000', message: 'clustering: iteration 3', file: 'am_build.rs', line: '1013', routine: 'vchord::index::am::am_build::make_internal_build::{{closure}}' } ``` and after 10 iteration the container restart and the process begin again. I found a similar output in this issue, but the problem seems unrelated: https://github.com/immich-app/immich/discussions/17912 ### The OS that Immich Server is running on microk8s on ubuntu 24.04 ### Version of Immich Server v1.135.0 ### Version of Immich Mobile App v1.135.0 ### Platform with the issue - [x] Server - [ ] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML this is my values.yaml: immich: ## This chart relies on the common library chart from bjw-s ## You can find it at https://github.com/bjw-s/helm-charts/tree/main/charts/library/common ## Refer there for more detail about the supported values # These entries are shared between all the Immich components env: REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}' #DB_HOSTNAME: "{{ .Release.Name }}-postgresql" DB_HOSTNAME: "immich-postgres-rw" DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}" DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}" # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}" #TYPESENSE_ENABLED: "{{ .Values.typesense.enabled }}" #TYPESENSE_API_KEY: "{{ .Values.typesense.env.TYPESENSE_API_KEY }}" #TYPESENSE_HOST: '{{ printf "%s-typesense" .Release.Name }}' #IMMICH_WEB_URL: '{{ printf "http://%s-web:3000" .Release.Name }}' #IMMICH_SERVER_URL: '{{ printf "http://%s-server:3001" .Release.Name }}' IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' MACHINE_LEARNING_WORKER_TIMEOUT: 1500 TZ: 'Europe/Rome' image: # renovate: datasource=github-releases depName=immich-app/immich tag: "v1.135.0" immich: persistence: # Main data store for all photos shared between different components. library: # Automatically creating the library volume is not supported by this chart # You have to specify an existing PVC to use existingClaim: immich-data postgresql: enabled: false primary: resources: limits: cpu: 6000m memory: 8192Mi requests: cpu: 2000m memory: 2048Mi image: registry: docker.io repository: tensorchord/pgvecto-rs tag: pg14-v0.2.0 global: storageClass: local-path-immich postgresql: auth: username: immich database: immich password: immichpw postgresPassword: rootimmich redis: enabled: true image: registry: docker.io repository: bitnami/redis tag: 7.2.4-debian-11-r0 global: storageClass: local-path-immich architecture: standalone auth: enabled: false server: enabled: true probes: liveness: spec: initialDelaySeconds: 120 readiness: spec: initialDelaySeconds: 120 image: repository: ghcr.io/immich-app/immich-server pullPolicy: IfNotPresent ingress: main: enabled: true annotations: # proxy-body-size is set to 0 to remove the body limit on file uploads nginx.ingress.kubernetes.io/proxy-body-size: "0" hosts: - host: immich.mydomain.net paths: - path: "/" tls: - secretName: cert hosts: - immich.mydomain.net machine-learning: enabled: true probes: liveness: spec: initialDelaySeconds: 240 periodSeconds: 30 timeoutSeconds: 5 failureThreshold: 5 image: repository: ghcr.io/immich-app/immich-machine-learning pullPolicy: IfNotPresent env: TRANSFORMERS_CACHE: /cache persistence: cache: enabled: true size: 10Gi # Optional: Set this to pvc to avoid downloading the ML models every start. type: pvc accessMode: ReadWriteOnce storageClass: local-path-immich ``` ### Your .env content ```Shell copied from the values.yaml: env: REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}' #DB_HOSTNAME: "{{ .Release.Name }}-postgresql" DB_HOSTNAME: "immich-postgres-rw" DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}" DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}" # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}" #TYPESENSE_ENABLED: "{{ .Values.typesense.enabled }}" #TYPESENSE_API_KEY: "{{ .Values.typesense.env.TYPESENSE_API_KEY }}" #TYPESENSE_HOST: '{{ printf "%s-typesense" .Release.Name }}' #IMMICH_WEB_URL: '{{ printf "http://%s-web:3000" .Release.Name }}' #IMMICH_SERVER_URL: '{{ printf "http://%s-server:3001" .Release.Name }}' IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' MACHINE_LEARNING_WORKER_TIMEOUT: 1500 TZ: 'Europe/Rome' ``` ### Reproduction steps Running a Kubernetes environment using the cnpg operator. - Upgraded the PostgreSQL image from ghcr.io/tensorchord/cloudnative-pgvecto.rs:16.5-v0.3.0 to ghcr.io/tensorchord/cloudnative-vectorchord:16.9-0.4.2 as suggested in [this issue comment](https://github.com/immich-app/immich-charts/issues/149#issuecomment-2904788845). - Followed the migration guide for standalone PostgreSQL from pgvectors to vectorchord: https://main.preview.immich.app/docs/administration/postgres-standalone/#migrating-from-pgvectors. - Upgraded the Immich deployment to version 1.135.0. - Observed the Immich server container logs. ### Relevant log output ```shell ``` ### Additional information _No response_
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#6301