immich icon indicating copy to clipboard operation
immich copied to clipboard

[BUG] Image and thumbnail does not display correctly in web UI neither mobile app

Open sirdeniel opened this issue 1 year ago • 5 comments

The bug

The image does not show correctly.

bug

The logs from immich_microservices:

Node.js v18.16.0
[Nest] 1  - 07/14/2023, 5:54:13 AM     LOG [NestFactory] Starting Nest application...
[Nest] 1  - 07/14/2023, 5:54:13 AM     LOG [InstanceLoader] TypeOrmModule dependencies initialized +46ms
[Nest] 1  - 07/14/2023, 5:54:13 AM     LOG [InstanceLoader] BullModule dependencies initialized +1ms
[Nest] 1  - 07/14/2023, 5:54:13 AM     LOG [InstanceLoader] ConfigHostModule dependencies initialized +0ms
[Nest] 1  - 07/14/2023, 5:54:13 AM     LOG [InstanceLoader] DiscoveryModule dependencies initialized +0ms
[Nest] 1  - 07/14/2023, 5:54:13 AM     LOG [InstanceLoader] ConfigModule dependencies initialized +11ms
[Nest] 1  - 07/14/2023, 5:54:13 AM     LOG [InstanceLoader] BullModule dependencies initialized +0ms
[Nest] 1  - 07/14/2023, 5:54:13 AM     LOG [InstanceLoader] BullModule dependencies initialized +0ms
[Nest] 1  - 07/14/2023, 5:54:14 AM     LOG [InstanceLoader] TypeOrmCoreModule dependencies initialized +186ms
[Nest] 1  - 07/14/2023, 5:54:14 AM     LOG [InstanceLoader] TypeOrmModule dependencies initialized +0ms
[Nest] 1  - 07/14/2023, 5:54:14 AM     LOG [InstanceLoader] TypeOrmModule dependencies initialized +0ms
[Nest] 1  - 07/14/2023, 5:54:14 AM     LOG [InstanceLoader] InfraModule dependencies initialized +11ms
[Nest] 1  - 07/14/2023, 5:54:14 AM     LOG [InstanceLoader] DomainModule dependencies initialized +0ms
[Nest] 1  - 07/14/2023, 5:54:14 AM     LOG [InstanceLoader] MicroservicesModule dependencies initialized +0ms
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering thumbnailGeneration with a concurrency of 5
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering metadataExtraction with a concurrency of 3
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering videoConversion with a concurrency of 1
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering objectTagging with a concurrency of 2
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering recognizeFaces with a concurrency of 2
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering clipEncoding with a concurrency of 2
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering backgroundTask with a concurrency of 5
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering storageTemplateMigration with a concurrency of 5
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering search with a concurrency of 5
[Nest] 1  - 07/14/2023, 5:54:14 AM   DEBUG [JobService] Registering sidecar with a concurrency of 5
[Nest] 1  - 07/14/2023, 5:54:14 AM    WARN [MetadataExtractionProcessor] Reverse geocoding is enabled
[Nest] 1  - 07/14/2023, 5:54:14 AM     LOG [MetadataExtractionProcessor] Initializing Reverse Geocoding

Only after resuming this job, the image displays correctly

manually_resume

And the logs are:

[Nest] 1  - 07/14/2023, 5:57:15 AM   ERROR [JobService] Unable to run job handler: TypeError: Cannot read properties of null (reading 'to')
[Nest] 1  - 07/14/2023, 5:57:15 AM   ERROR [JobService] TypeError: Cannot read properties of null (reading 'to')
    at CommunicationRepository.send (/usr/src/app/dist/infra/repositories/communication.repository.js:20:24)
    at JobService.onDone (/usr/src/app/dist/domain/job/job.service.js:156:50)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /usr/src/app/dist/domain/job/job.service.js:106:25
    at async Worker.processJob (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:342:28)
    at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:525:24)
[Nest] 1  - 07/14/2023, 5:57:15 AM   ERROR [JobService] Object:
{
  "id": "fc6d1c2f-ff7c-40cb-93d7-30d7f820ddf0",
  "source": "upload"
}
[Nest] 1  - 07/14/2023, 5:57:15 AM   DEBUG [FacialRecognitionService] 0 faces detected in upload/thumbs/eb190195-cc2b-4d4d-9bb8-4f70b669a772/fc6d1c2f-ff7c-40cb-93d7-30d7f820ddf0.jpeg
[Nest] 1  - 07/14/2023, 5:57:15 AM VERBOSE [FacialRecognitionService] Object:
[Nest] 1  - 07/14/2023, 5:57:17 AM   DEBUG [SearchService] Flushing 1 asset upserts

The OS that Immich Server is running on

Ubuntu 20.04.6 LTS

Version of Immich Server

v1.67.1

Version of Immich Mobile App

v1.66.0 build.89

Platform with the issue

  • [X] Server
  • [X] Web
  • [X] Mobile

Your docker-compose.yml content

version: "3.8"

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: [ "start.sh", "immich" ]
    volumes:
      - ${UPLOAD_LOCATION:-<mypath>}:/usr/src/app/upload
    env_file:
      - .env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: [ "start.sh", "microservices" ]
    volumes:
      - ${UPLOAD_LOCATION:-<mypath>}:/usr/src/app/upload
    env_file:
      - .env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  immich-web:
    container_name: immich_web
    image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
    env_file:
      - .env
    restart: always

  typesense:
    container_name: immich_typesense
    image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
    environment:
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_DATA_DIR=/data
    logging:
      driver: none
    volumes:
      - tsdata:/data
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
    restart: always

  database:
    container_name: immich_postgres
    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      PG_DATA: /var/lib/postgresql/data
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

  # immich-proxy:
    # container_name: immich_proxy
    # image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
    # environment:
      # # Make sure these values get passed through from the env file
      # - IMMICH_SERVER_URL
      # - IMMICH_WEB_URL
    # ports:
      # - 2283:8080
    # depends_on:
      # - immich-server
      # - immich-web
    # restart: always

volumes:
  pgdata:
  model-cache:
  tsdata:

Your .env content

DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE_NAME=immich
REDIS_HOSTNAME=immich_redis
UPLOAD_LOCATION=<mypath>
TYPESENSE_API_KEY=<mykey>
LOG_LEVEL=verbose
JWT_SECRET=<mykey2>
PUBLIC_LOGIN_PAGE_MESSAGE="Hi there!"
PUID=1001
PGID=1001
IMMICH_WEB_URL=http://immich-web:3000
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003

Reproduction steps

1. Setup docker compose from Portainer
2. Setup basic Caddy with Caddyfile provided in Additional information
3. Do getting started with docker compose method
4. Create account and upload one image

Note. The above steps are done in a brand new Portainer stack derived from docker-compose.yml example in the v1.67.1 release
...

Additional information

Caddyfile since I am already using a proxy rather than the default one from the docker-compose.yml example

immich.myserver.com {
    handle_path /api/* {
        reverse_proxy immich_server:3001
    }
    handle_path /ml/* {
        reverse_proxy immich_machine_learning:3003
    }
    handle {
        reverse_proxy immich_web:3000
    }
}

sirdeniel avatar Jul 14 '23 06:07 sirdeniel

So you are pausing the job? I believe the thumbnail generation job would only happen after the metadata job

alextran1502 avatar Jul 14 '23 13:07 alextran1502

I was also having this issue, but it fixed in the 1.67.2 server update.

shant1010 avatar Jul 14 '23 16:07 shant1010

1.67.2 fixed this for me

esmoyer avatar Jul 14 '23 18:07 esmoyer

So you are pausing the job? I believe the thumbnail generation job would only happen after the metadata job

I'm not pausing the job. it's just that I noticed the job was paused in the first place without my intervention.

1.67.2 fixed this for me

I've updated to v1.67.2 yet the thumbnails and the pictures do not show correctly or "loaded".

sirdeniel avatar Jul 15 '23 04:07 sirdeniel

So you are pausing the job? I believe the thumbnail generation job would only happen after the metadata job

I'm not pausing the job. it's just that I noticed the job was paused in the first place without my intervention.

1.67.2 fixed this for me

I've updated to v1.67.2 yet the thumbnails and the pictures do not show correctly or "loaded".

The jobs don't automatically pause unless there were some interventions before. Was the issue get fixed after you resume/rerun the job?

alextran1502 avatar Jul 15 '23 04:07 alextran1502