[BUG] Merge 2 faces merged another face and hidden it at the same time #1981

Closed
opened 2026-02-05 04:40:20 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @Chuckame on GitHub (Jan 14, 2024).

The bug

My wife just added all the photos and started to identify detected faces. She named 2 faces with the same name (that worked), and then only, merged those 2 faces together.

Here is the bug: This action merged not only those 2 faces, but also another face, and hidden the final merge face.

Now we have to reset the faces recognition (I don't know how). By the way it would be great to un-merge faces.

The OS that Immich Server is running on

docker - debian (odroid)

Version of Immich Server

1.91.4

Version of Immich Mobile App

1.92.0 build 117

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

version: "3.8"

services:
  server:
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: [ "start.sh", "immich" ]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /mnt/user/Photos/...:/usr/src/app/external/...:ro
      - /mnt/user/Photos/...:/usr/src/app/external/...:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
    restart: unless-stopped
    networks:
      - internal
      - caddy
    labels:
      caddy: <domain>
      caddy.reverse_proxy: '{{upstreams http 3001}}'

  microservices:
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    extends:
      file: hwaccel.yml
      service: hwaccel
    command: [ "start.sh", "microservices" ]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /mnt/user/Photos/...:/usr/src/app/external/...:ro
      - /mnt/user/Photos/...:/usr/src/app/external/...:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
    restart: unless-stopped
    networks:
      - internal

  machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: unless-stopped
    networks:
      - internal

  machine-learning-lb:
    image: caddy
    volumes:
      - ./machine-learning-lb.Caddyfile:/etc/caddy/Caddyfile
    restart: unless-stopped
    ports:
      - 3003:3003
    networks:
      - internal

  redis:
    image: redis:6.2-alpine@sha256:b6124ab2e45cc332e16398022a411d7e37181f21ff7874835e0180f56a09e82a
    restart: unless-stopped
    networks:
      - internal

  database:
    image: tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    networks:
      - internal

volumes:
  pgdata:
  model-cache:

networks:
  caddy:
    external: true
  internal:

Your .env content

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
PUID=33
PGID=33

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

IMMICH_VERSION=v1.91.4

# Connection secret for postgres. You should change it to a random password
DB_PASSWORD="NANI"

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

REDIS_HOSTNAME=redis

#LOG_LEVEL=debug

Reproduction steps

1. go into a face
2. click on "merge person"
3. select the other face with the same name
4. click on "merge"

> the bug occurred

Additional information

I already did it with other faces, but did not have this bug. There is absolutely no error log, and no other useful logs, except:

from immich-microservices:

[Nest] 7  - 01/14/2024, 12:00:00 AM   ERROR [JobService] Unable to run job handler (thumbnailGeneration/generate-jpeg-thumbnail): Error: Input file contains unsupported image format
[Nest] 7  - 01/14/2024, 12:00:00 AM   ERROR [JobService] Error: Input file contains unsupported image format
    at Sharp.toFile (/usr/src/app/node_modules/sharp/lib/output.js:89:19)
    at MediaRepository.resize (/usr/src/app/dist/infra/repositories/media.repository.js:38:14)
    at MediaService.generateThumbnail (/usr/src/app/dist/domain/media/media.service.js:116:44)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MediaService.handleGenerateJpegThumbnail (/usr/src/app/dist/domain/media/media.service.js:103:28)
    at async /usr/src/app/dist/domain/job/job.service.js:113:37
    at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:387:28)
    at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:574:24)
[Nest] 7  - 01/14/2024, 12:00:00 AM   ERROR [JobService] Object:
{
  "id": "de8f8a86-6cfb-49a1-be78-72678a8885ba"
}
[Nest] 7  - 01/14/2024, 12:00:05 AM   ERROR [JobService] Unable to run job handler (thumbnailGeneration/generate-jpeg-thumbnail): Error: Input file has corrupt header: VipsJpeg: Invalid SOS parameters for sequential JPEG
magickload: Magick: Input/output error `upload/library/admin/2017/2017-07-01/IMG_4815.CR2' @ error/dng.c/ReadDNGImage/541 (null)
[Nest] 7  - 01/14/2024, 12:00:05 AM   ERROR [JobService] Error: Input file has corrupt header: VipsJpeg: Invalid SOS parameters for sequential JPEG
magickload: Magick: Input/output error `upload/library/admin/2017/2017-07-01/IMG_4815.CR2' @ error/dng.c/ReadDNGImage/541 (null)
    at Sharp.toFile (/usr/src/app/node_modules/sharp/lib/output.js:89:19)
    at MediaRepository.resize (/usr/src/app/dist/infra/repositories/media.repository.js:38:14)
    at MediaService.generateThumbnail (/usr/src/app/dist/domain/media/media.service.js:116:44)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MediaService.handleGenerateJpegThumbnail (/usr/src/app/dist/domain/media/media.service.js:103:28)
    at async /usr/src/app/dist/domain/job/job.service.js:113:37
    at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:387:28)
    at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:574:24)
[Nest] 7  - 01/14/2024, 12:00:05 AM   ERROR [JobService] Object:
{
  "id": "e1f879ee-e48f-4343-af95-d73d11b340b2"
}

immich-server:

[Nest] 7  - 01/14/2024, 10:20:56 AM    WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses

database (the only MASSIVE error log):

2024-01-13 19:04:16.101 UTC [3802] ERROR:  duplicate key value violates unique constraint "UQ_assets_owner_library_checksum"
Originally created by @Chuckame on GitHub (Jan 14, 2024). ### The bug My wife just added all the photos and started to identify detected faces. She named 2 faces with the same name (that worked), and then only, merged those 2 faces together. Here is the bug: This action merged not only those 2 faces, but also another face, and hidden the final merge face. Now we have to reset the faces recognition (I don't know how). By the way it would be great to un-merge faces. ### The OS that Immich Server is running on docker - debian (odroid) ### Version of Immich Server 1.91.4 ### Version of Immich Mobile App 1.92.0 build 117 ### Platform with the issue - [ ] Server - [X] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML version: "3.8" services: server: image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "immich" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - /mnt/user/Photos/...:/usr/src/app/external/...:ro - /mnt/user/Photos/...:/usr/src/app/external/...:ro env_file: - .env depends_on: - redis - database restart: unless-stopped networks: - internal - caddy labels: caddy: <domain> caddy.reverse_proxy: '{{upstreams http 3001}}' microservices: image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} extends: file: hwaccel.yml service: hwaccel command: [ "start.sh", "microservices" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - /mnt/user/Photos/...:/usr/src/app/external/...:ro - /mnt/user/Photos/...:/usr/src/app/external/...:ro env_file: - .env depends_on: - redis - database restart: unless-stopped networks: - internal machine-learning: image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - model-cache:/cache env_file: - .env restart: unless-stopped networks: - internal machine-learning-lb: image: caddy volumes: - ./machine-learning-lb.Caddyfile:/etc/caddy/Caddyfile restart: unless-stopped ports: - 3003:3003 networks: - internal redis: image: redis:6.2-alpine@sha256:b6124ab2e45cc332e16398022a411d7e37181f21ff7874835e0180f56a09e82a restart: unless-stopped networks: - internal database: image: tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - pgdata:/var/lib/postgresql/data restart: unless-stopped networks: - internal volumes: pgdata: model-cache: networks: caddy: external: true internal: ``` ### Your .env content ```Shell # You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables PUID=33 PGID=33 # The location where your uploaded files are stored UPLOAD_LOCATION=/mnt/user/Photos/immich IMMICH_VERSION=v1.91.4 # Connection secret for postgres. You should change it to a random password DB_PASSWORD="NANI" # The values below this line do not need to be changed ################################################################################### DB_HOSTNAME=database DB_USERNAME=postgres DB_DATABASE_NAME=immich REDIS_HOSTNAME=redis #LOG_LEVEL=debug ``` ### Reproduction steps ```bash 1. go into a face 2. click on "merge person" 3. select the other face with the same name 4. click on "merge" > the bug occurred ``` ### Additional information I already did it with other faces, but did not have this bug. There is absolutely no error log, and no other useful logs, except: from immich-microservices: ``` [Nest] 7 - 01/14/2024, 12:00:00 AM ERROR [JobService] Unable to run job handler (thumbnailGeneration/generate-jpeg-thumbnail): Error: Input file contains unsupported image format [Nest] 7 - 01/14/2024, 12:00:00 AM ERROR [JobService] Error: Input file contains unsupported image format at Sharp.toFile (/usr/src/app/node_modules/sharp/lib/output.js:89:19) at MediaRepository.resize (/usr/src/app/dist/infra/repositories/media.repository.js:38:14) at MediaService.generateThumbnail (/usr/src/app/dist/domain/media/media.service.js:116:44) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async MediaService.handleGenerateJpegThumbnail (/usr/src/app/dist/domain/media/media.service.js:103:28) at async /usr/src/app/dist/domain/job/job.service.js:113:37 at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:387:28) at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:574:24) [Nest] 7 - 01/14/2024, 12:00:00 AM ERROR [JobService] Object: { "id": "de8f8a86-6cfb-49a1-be78-72678a8885ba" } [Nest] 7 - 01/14/2024, 12:00:05 AM ERROR [JobService] Unable to run job handler (thumbnailGeneration/generate-jpeg-thumbnail): Error: Input file has corrupt header: VipsJpeg: Invalid SOS parameters for sequential JPEG magickload: Magick: Input/output error `upload/library/admin/2017/2017-07-01/IMG_4815.CR2' @ error/dng.c/ReadDNGImage/541 (null) [Nest] 7 - 01/14/2024, 12:00:05 AM ERROR [JobService] Error: Input file has corrupt header: VipsJpeg: Invalid SOS parameters for sequential JPEG magickload: Magick: Input/output error `upload/library/admin/2017/2017-07-01/IMG_4815.CR2' @ error/dng.c/ReadDNGImage/541 (null) at Sharp.toFile (/usr/src/app/node_modules/sharp/lib/output.js:89:19) at MediaRepository.resize (/usr/src/app/dist/infra/repositories/media.repository.js:38:14) at MediaService.generateThumbnail (/usr/src/app/dist/domain/media/media.service.js:116:44) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async MediaService.handleGenerateJpegThumbnail (/usr/src/app/dist/domain/media/media.service.js:103:28) at async /usr/src/app/dist/domain/job/job.service.js:113:37 at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:387:28) at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:574:24) [Nest] 7 - 01/14/2024, 12:00:05 AM ERROR [JobService] Object: { "id": "e1f879ee-e48f-4343-af95-d73d11b340b2" } ``` immich-server: ``` [Nest] 7 - 01/14/2024, 10:20:56 AM WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses ``` database (the only MASSIVE error log): ``` 2024-01-13 19:04:16.101 UTC [3802] ERROR: duplicate key value violates unique constraint "UQ_assets_owner_library_checksum" ```
Author
Owner

@jrasm91 commented on GitHub (Sep 9, 2024):

I can't reproduce this issue anymore. It was likely fixed soon after the feature was released.

@jrasm91 commented on GitHub (Sep 9, 2024): I can't reproduce this issue anymore. It was likely fixed soon after the feature was released.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#1981