immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
45.08k stars 2.18k forks source link

API not found error on the latest release #10143

Closed mohammadhosseinhosseini closed 3 months ago

mohammadhosseinhosseini commented 3 months ago

The bug

Hello all,

I've just updated my immich server from 1.105 to 1.106 I was using the immich CLI tool to upload photos from folders on my device but suddenly after the update to the new version it gave me the below error:

Logging in to http://192.168.3.6:20017/api Failed to connect to server: 404 { "message": "Cannot GET /api/user/me", "error": "Not Found", "statusCode": 404, "correlationId": "q4o9n02t" }

I tried to open http://192.168.3.6:20017/api manually on my browser and I'm getting the same error as the response: { "message": "Cannot GET /api", "error": "Not Found", "statusCode": 404, "correlationId": "k22cwyta" }

It looks like the API endpoints are not working.

I also installed Immich from scratch with a new library and database but same story.

I also tried with the default port (2283) and on localhost (localhost:2283) but same story.

The web UI and everything else work fine and I can see the images. Only the CLI (in this case API) doesn't work. As you can see in the image below the version is 1.106.1

image

One point to mention: I had to comment out start_interval: 30s in the docker-compose.yml file as docker compose keeps giving me this error: $ docker compose up -d services.database.healthcheck Additional property start_interval is not allowed

Thank you.

The OS that Immich Server is running on

Ubuntu 24.04 LTS Desktop

Version of Immich Server

1.106.1

Version of Immich Mobile App

1.106

Platform with the issue

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}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 20017:3001
    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}
    # 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, 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: docker.io/redis:6.2-alpine@sha256:d6c2911ac51b289db208767581a5d154544f2b2fe4914ea5056443f62dc6e900
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    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
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT SUM(checksum_failures) 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"
      ]
    restart: always

volumes:
  model-cache:

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

# 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
DB_PASSWORD=<my-password>

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

Reproduction steps

1. Install the new version (1.106.1) using docker
2. Tried to use `immich login` in cli
3. I got the error mentioned
4. I tried to access the API endpoint directly on the browser and it gave me the same error.

Relevant log output

No response

Additional information

No response

alextran1502 commented 3 months ago

The CLI tool hasn't been released yet we probably release it in a few hours with the hot fixes

bo0tzz commented 3 months ago

@alextran1502 the CLI has already been released

@mohammadhosseinhosseini you need to update your CLI installation to the latest version

mohammadhosseinhosseini commented 3 months ago

@bo0tzz : Thank you, after updating immich cli to 2.2.1, it works now.

Do you know about start_interval in the docker-compose.yml file that I have to remove it in order to work?

jrasm91 commented 3 months ago

You need to update your docker install to at least version 25 I think.