immich-app / immich

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

Timeline and Albums in app are empty, log shows error #13716

Closed Fenisu closed 4 days ago

Fenisu commented 1 week ago

The bug

The timeline and album are emtpy after login. The app throws an error in the log.

The OS that Immich Server is running on

Debian 12

Version of Immich Server

v1.118.2

Version of Immich Mobile App

v1.118.0

Platform with the issue

Your docker-compose.yml content

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
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false
    networks:
      - immich_internal_network

  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
    healthcheck:
      disable: false
    networks:
      - immich_internal_network

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
    networks:
      - immich_internal_network

  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}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    networks:
      - immich_internal_network
    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

networks:
  immich_internal_network:
    external: true

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=/mnt/Mirror/immich/app

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

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

REDIS_HOSTNAME=immich_redis

Reproduction steps

  1. Open app
  2. Write local IP address "http://ip:2283"
  3. Write login details and press login
  4. Apps login and shows "Building the timeline"
  5. It hangs there

Relevant log output

10-24 11:07:05.150 19604 19604 I ImeTracker: app.alextran.immich:ab31f47a: onRequestHide at ORIGIN_CLIENT_HIDE_SOFT_INPUT reason HIDE_SOFT_INPUT
10-24 11:07:05.151 19604 19604 W RemoteInputConnectionImpl: getExtractedText on inactive InputConnection
10-24 11:07:05.152 19604 19604 W RemoteInputConnectionImpl: getTextBeforeCursor on inactive InputConnection
10-24 11:07:05.378 19604 19646 I flutter : Attempting to connect to websocket
10-24 11:07:05.392 19604 19604 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
10-24 11:07:05.392 19604 19604 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
10-24 11:07:05.418 19604 19604 D BLASTBufferQueue: [VRI[MainActivity]#2](f:0,a:1) HMDCF: update width=1080 height=2400 format=-3 mTransformHint=0
10-24 11:07:05.418 19604 19646 I flutter : Established Websocket Connection
10-24 11:07:16.351 19604 19646 I flutter : [INFO] [2024-10-24 11:07:16.351555] Upserted 28285 assets into the DB
10-24 11:07:19.743 19604 19646 I flutter : [SEVERE] [2024-10-24 11:07:19.743454] Error while getting remote assets
10-24 11:07:19.743 19604 19646 I flutter : refreshRemoteAssets full took 14262ms
10-24 11:07:19.748 19604 19646 I flutter : changedUsers: true, newRemote: true, newLocal: false
10-24 11:07:19.748 19604 19646 I flutter : [INFO] [2024-10-24 11:07:19.748442] Load assets: 14355ms
10-24 11:07:20.324 19604 19646 I flutter : FlutterError - Catch all: FormatException: Invalid radix-10 number (at character 1)
10-24 11:07:20.324 19604 19646 I flutter : Horizontal (normal)
10-24 11:07:20.324 19604 19646 I flutter : ^
10-24 11:07:20.324 19604 19646 I flutter : 
10-24 11:07:20.324 19604 19646 I flutter : [SEVERE] [2024-10-24 11:07:20.324228] PlatformDispatcher - Catch all

Additional information

While the timeline does not show anything, nor any albums, if I enable to see my partner's timeline in mine I can see partner's pictures. I can also see People and Places but without pictures

There is another phone logged in to the same server and same account and seems to show the same error in the log but works.

I created a different test user and the same phone can login and I don't see the same error in the log.

alextran1502 commented 1 week ago

Can you export the error log so we can see the stack trace?

Fenisu commented 1 week ago

Sure! Here it is: [Uploading Immich_log_2024-10-24T132836.960562.log…]()

No13 commented 1 week ago

Same issue here, this was not detected before since it only shows when switching to a new phone (or re-installing immich).

Both phones show this same error but on the older one this did not affect the functionality. The new phone will only show a few photos and albums. The web client shows all is well. Immich_log_2024-10-28T06_49_19.218221.log

nperez0111 commented 4 days ago

Im getting this on the iOS client


Error while getting remote assets

FormatException: Invalid radix-10 number (at character 1)
Horizontal (normal)
^

#0      int._handleFormatError (dart:core-patch/integers_patch.dart:127)
#1      int._parseRadix (dart:core-patch/integers_patch.dart:153)
#2      int._parse (dart:core-patch/integers_patch.dart:99)
#3      int.parse (dart:core-patch/integers_patch.dart:61)
#4      DurationExtension.toInt (package:immich_mobile/extensions/string_extensions.dart:29)
#5      isFlipped (package:immich_mobile/entities/asset.entity.dart:527)
#6      new Asset.remote (package:immich_mobile/entities/asset.entity.dart:25)
#7      MappedListIterable.elementAt (dart:_internal/iterable.dart:425)
#8      ListIterator.moveNext (dart:_internal/iterable.dart:354)
#9      List.addAll (dart:core-patch/growable_array.dart:326)
#10     AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:149)
<asynchronous suspension>
#11     SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:267)
<asynchronous suspension>
#12     SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:257)
<asynchronous suspension>
#13     SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:92)
<asynchronous suspension>
#14     AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>