Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Number of people shown is limited to 500 (after update to v1.108.0) #11070

Closed
2 of 3 tasks
adiesner opened this issue Jul 13, 2024 · 7 comments · Fixed by #11326
Closed
2 of 3 tasks

Number of people shown is limited to 500 (after update to v1.108.0) #11070

adiesner opened this issue Jul 13, 2024 · 7 comments · Fixed by #11326

Comments

@adiesner
Copy link

adiesner commented Jul 13, 2024

The bug

After updating from v1.107.2 to v1.108.0 the number of people shown in Immich Web is limited to 500.

v1.107.2 Explore -> People -> View all -> (15,721)
v1.108.0 Explore -> People -> View all -> (500)

The OS that Immich Server is running on

Ubuntu 22.04.4 LTS

Version of Immich Server

v1.108.0

Version of Immich Mobile App

1.108.0 build:148

Platform with the issue

  • Server
  • Web
  • Mobile

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}
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /daten/archive/Fotos:/mnt/media/archive:ro
    env_file:
      - .env
    ports:
      - 2283: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: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
    restart: always

  database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

  backup:
   container_name: immich_db_dumper
   image: prodrigestivill/postgres-backup-local
   env_file:
     - .env
   environment:
     POSTGRES_HOST: database
     POSTGRES_DB: ${DB_DATABASE_NAME}
     POSTGRES_USER: ${DB_USERNAME}
     POSTGRES_PASSWORD: ${DB_PASSWORD}
     SCHEDULE: "@daily"
     BACKUP_DIR: /db_dumps
   volumes:
     - ${DB_BACKUP_LOCATION}:/db_dumps
   depends_on:
     - database

volumes:
  pgdata:
  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
DB_BACKUP_LOCATION=/daten/immich.app/backup
UPLOAD_LOCATION=/daten/immich.app/upload

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

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

REDIS_HOSTNAME=immich_redis

Reproduction steps

1. With version v1.107.2 go to Explore -> People -> View all
2. 15,721 people are shown
3. After update to v1.108.0 only 500 people are shown

The endpoint https://immich.some.domain/api/people?withHidden=true returns only 500 entries under people.
{
    "people": [ ... ],  <--- max 500 entries
    "total": 15778,
    "hidden": 43
}

Expected behavior:
- Show all 15778-43 people either bei introducing pagination, or by returning all
- Currently it is not possible to access people 500-15778

Relevant log output

No response

Additional information

No response

@m4ntic0r
Copy link

m4ntic0r commented Jul 14, 2024

yes i have the same. row count on people is 35186 and in WebUI it shows 500. Perhaps if this is intended, make a count for people in statistics and a description, you can have only 500 named or favorites.

@adiesner
Copy link
Author

Perhaps if this is intended, make a count for people in statistics and a description, you can have only 500 named or favorites.

I couldn't find anything in the change log that indicates that this is an intended change.

@kymograph
Copy link

I am having the same issue. Is there any workaround to see the remaining faces? Is there a filter query to search for certain faces, e.g., all untagged faces?

@kylew01
Copy link

kylew01 commented Jul 20, 2024

I am having the same issue. Is there any workaround to see the remaining faces? Is there a filter query to search for certain faces, e.g., all untagged faces?

I think you can see them all on a mobile app, or if you click the hide/show button.

I too am having the issue, by the way.

@hieronymousch

This comment was marked as duplicate.

@caburum
Copy link

caburum commented Jul 23, 2024

I'm not very acquainted with this app's architecture, but from an initial look the web people page calls /api/people which calls getAll on the person service, which finally calls getAllForUser on the person repository. This final sql call has a limit of 500. However, above this is a function called getAll which seems to do some sort of pagination. That function is called in the same file here which seems to properly loop over results to use over 500. As a guess, implementing something similar to that for /api/people should fix it (or calling the api multiple times with offsets to only load 500 at a time, I'm not sure what the preferred way to implement it is).

Related, the api calls getNumberOfPeople which returns the total counts, but these numbers aren't used in the web client as when viewing all people I see 500 at the top (the limited number displayed) instead of the api's returned 688.

I'm currently on vacation, but when I get home I can make a PR to address this issue at least on the web app.

@bo0tzz
Copy link
Member

bo0tzz commented Jul 24, 2024

Will be fixed by #11326

@michelheusschen michelheusschen linked a pull request Jul 24, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants