Skip to content

Unable to restore from database #27761

@FrankGiesecke

Description

@FrankGiesecke

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

  • Yes

The bug

I've shutdown my old Immich instance.
Afterwards, I created a new one using the same docker compose configuration. As my data is just mounted from my storage, the paths doesn't change.

After the first start, I've tried to restore the database during the onboarding process.
In the result I get this error:

Error: /usr/lib/postgresql/14/bin/psql non-zero exit code (3)
ERROR:  extra data after last expected column
CONTEXT:  COPY asset_exif, line 94330: "1bb96625-ac0c-4630-84fd-8604ec2003f5	\N	\N	995	1046	131891	\N	2021-12-25 07:18:57+00	2025-11-08 21:1..."

Can someone tell me, how to find and solve the problem?
This leads in loosing the trust to teh internal backup.

The OS that Immich Server is running on

Debian 13

Version of Immich Server

2.7.3

Version of Immich Mobile App

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Your docker-compose.yml content

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - ${UPLOAD_LOCATION}:/data
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - '2283:2283'
    depends_on:
      redis:
        condition: service_healthy
      database:
        condition: service_healthy
      immich-ml-balancer:
        condition: service_started
      
    restart: always
    healthcheck:
      disable: false
      
  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:${REDIS_VERSION}
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
    ports:
      - '6379:6379'
    
  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:${DB_VERSION}
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    shm_size: 128mb
    restart: always
    healthcheck:
      disable: false
    ports:
      - '5432:5432'
    
volumes:
  model-cache:

Your .env content

###################################################################################
# Application settings

# The location where your uploaded files are stored
UPLOAD_LOCATION=/mnt/immich

# 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/Berlin

# The Immich version to use. You can pin this to a specific version like "v2.1.0"
IMMICH_VERSION=v2.7.3

IMMICH_TRUSTED_PROXIES=172.16.1.10


###################################################################################
# Database settings

# The database version to use
DB_VERSION=14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=/opt/immich/postgres

# The hostname of your database server
DB_HOSTNAME=database

# The port your database server is listening on
DB_PORT=5432

# The username for your database connection
DB_USERNAME=postgres

# 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=xxxxxxxxx

# The database name for Immich
DB_DATABASE_NAME=immich

###################################################################################
# Redis settings

# The redis version to use
REDIS_VERSION=9@sha256:930b41430fb727f533c5982fe509b6f04233e26d0f7354e04de4b0d5c706e44e

# The hostname of your redis server
REDIS_HOSTNAME=redis

# The port your redis server is listening on
REDIS_PORT=6379

Reproduction steps

  1. Run docker compose up -d
  2. Open the WebUI
  3. Choose "Restore from Databese"
  4. Choose the backup file
  5. Start Restore

Relevant log output

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions