Items in locked folder not shown on Android app anymore #7679

Closed
opened 2026-02-05 13:13:32 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @Eldaroth on GitHub (Oct 31, 2025).

I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

I updated to version 2.2.0 (from 2.0.1) and since then, I don't see any items in my locked folder on Android anymore, instead they are visible in the regular timeline and show the "not synced" to immich icon. They are still in the locked folder when looking on the web app.

Furthermore, I see logs on the immich server container that it tries to re-upload these pictures (see log output below). The referenced jpg corresponds with the pictures which previously where shown in the locked folder on my Android.

The OS that Immich Server is running on

AlmaLinux 9.6

Version of Immich Server

v2.2.0

Version of Immich Mobile App

v2.2.0 build.5023

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Pixel 9

Your docker-compose.yml content

Converted everything to Podman Quadlets (Systemd Unit Files)
---
[Unit]
Description=Immich Server Container
Requires=immich-valkey.service immich-db.service

[Service]
Restart=always
EnvironmentFile=%h/Podman/global.env

[Container]
ContainerName=immich-server
Image=ghcr.io/immich-app/immich-server:v2
Pod=immich.pod
AutoUpdate=registry
SecurityLabelDisable=true

Environment=IMMICH_WORKERS_INCLUDE='api'
Environment=REDIS_HOSTNAME=immich-valkey
Environment=DB_HOSTNAME=immich-db
Environment=DB_DATABASE_NAME=immich

Secret=immich_db_user,type=env,target=DB_USERNAME
Secret=immich_db_password,type=env,target=DB_PASSWORD

Volume=/mnt/nas/pictures/immich:/data
Volume=/mnt/nas/photos/user:/mnt/nas/photos/user:ro
Volume=/mnt/nas/photos/shared:/mnt/nas/photos/shared:ro
Volume=/etc/localtime:/etc/localtime:ro

[Install]
WantedBy=default.target
---
[Unit]
Description=Immich Microservices Container
Requires=immich-valkey.service immich-db.service

[Service]
Restart=always
EnvironmentFile=%h/Podman/global.env

[Container]
ContainerName=immich-microservices
Image=ghcr.io/immich-app/immich-server:v2
Pod=immich.pod
AutoUpdate=registry
SecurityLabelDisable=true

Environment=IMMICH_WORKERS_EXCLUDE='api'
Environment=REDIS_HOSTNAME=immich-valkey
Environment=DB_HOSTNAME=immich-db
Environment=DB_DATABASE_NAME=immich

Secret=immich_db_user,type=env,target=DB_USERNAME
Secret=immich_db_password,type=env,target=DB_PASSWORD

Volume=/mnt/nas/pictures/immich/:/data
Volume=/mnt/nas/photos/user/:/mnt/nas/photos/user:ro
Volume=/mnt/nas/photos/shared/:/mnt/nas/photos/shared:ro
Volume=/etc/localtime:/etc/localtime:ro

[Install]
WantedBy=default.target
---
[Unit]
Description=Immich ML Container
Requires=immich-valkey.service immich-db.service

[Service]
Restart=always
EnvironmentFile=%h/Podman/global.env

[Container]
ContainerName=immich-machine-learning
Image=ghcr.io/immich-app/immich-machine-learning:v2
Pod=immich.pod
AutoUpdate=registry

Volume=%h/container_volumes/immich/cache:/cache:z
Volume=/etc/localtime:/etc/localtime:ro

[Install]
WantedBy=default.target
---
[Unit]
Description=Valkey Container for Immich

[Install]
WantedBy=default.target

[Container]
ContainerName=immich-valkey
Image=docker.io/valkey/valkey:8
Network=immich.network
UIDMap=+999:@1000:1
GIDMap=+999:@1000:1
AutoUpdate=registry
Exec=valkey-server --supervised systemd
Notify=true

Environment=TZ=${TZ}

Volume=%h/container_volumes/immich/valkey:/data:z

[Service]
Restart=always
EnvironmentFile=%h/Podman/global.env
---
[Unit]
Description=Immich Database Container
Requires=immich-valkey.service

[Service]
Restart=always
EnvironmentFile=%h/Podman/global.env

[Container]
ContainerName=immich-db
Image=ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
Network=immich.network
UIDMap=+999:@1000:1
GIDMap=+999:@1000:1
AutoUpdate=registry

Environment=POSTGRES_INITDB_ARGS='--data-checksums'
Environment=POSTGRES_DB=immich

Secret=immich_db_user,type=env,target=POSTGRES_USER
Secret=immich_db_password,type=env,target=POSTGRES_PASSWORD

Volume=%h/container_volumes/immich/pgdata:/var/lib/postgresql/data:z

[Install]
WantedBy=default.target

Your .env content

-

Reproduction steps

  1. Having pictures on phone and already uploaded to server put into locked folder (before upgrade)
  2. Upgrade to v2.2.0
  3. Moved all the pictures out of the locked folder in the web ui, but still have the error in the logs and the app still tries to upload all the pictures previously in the folder again

Relevant log output

Query failed : {
  durationMs: 1.535359000088647,
  error: PostgresError: duplicate key value violates unique constraint "UQ_assets_owner_checksum"
      at ErrorResponse (/usr/src/app/server/node_modules/.pnpm/postgres@3.4.7/node_modules/postgres/cjs/src/connection.js:794:26)
      at handle (/usr/src/app/server/node_modules/.pnpm/postgres@3.4.7/node_modules/postgres/cjs/src/connection.js:480:6)
      at Socket.data (/usr/src/app/server/node_modules/.pnpm/postgres@3.4.7/node_modules/postgres/cjs/src/connection.js:315:9)
      at Socket.emit (node:events:518:28)
      at addChunk (node:internal/streams/readable:561:12)
      at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
      at Readable.push (node:internal/streams/readable:392:5)
      at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
      at TCP.callbackTrampoline (node:internal/async_hooks:130:17) {
    severity_local: 'ERROR',
    severity: 'ERROR',
    code: '23505',
    detail: 'Key ("ownerId", checksum)=(f12b4cf8-0638-4c34-b0fb-de2e3e3d8001, \\xe8158ba0b7b52673048c2bfb5c52d127c863f4bb) already exists.',
    schema_name: 'public',
    table_name: 'asset',
    constraint_name: 'UQ_assets_owner_checksum',
    file: 'nbtinsert.c',
    line: '663',
    routine: '_bt_check_unique'
  },
  sql: 'insert into "asset" ("ownerId", "libraryId", "checksum", "originalPath", "deviceAssetId", "deviceId", "fileCreatedAt", "fileModifiedAt", "localDateTime", "type", "isFavorite", "duration", "visibility", "originalFileName") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) returning *',
  params: [
    'f12b4cf8-0638-4c34-b0fb-de2e3e3d8001',
    null,
    <Buffer e8 15 8b a0 b7 b5 26 73 04 8c 2b fb 5c 52 d1 27 c8 63 f4 bb>,
    '/data/upload/f12b4cf8-0638-4c34-b0fb-de2e3e3d8001/fb/7f/fb7f84da-94e7-4571-a867-c3dc15ec89b0.jpg',
    '1000010051',
    '83ff86fb55804b21c4bcd883583af20b72e8388a9da74307f4e756ccc31525c3',
    2025-06-01T08:09:59.000Z,
    2025-06-01T08:10:02.000Z,
    2025-06-01T08:09:59.000Z,
    'IMAGE',
    false,
    '0',
    'timeline',
    'PXL_20250601_080959357.jpg'
  ]
}

Additional information

No response

Originally created by @Eldaroth on GitHub (Oct 31, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug I updated to version 2.2.0 (from 2.0.1) and since then, I don't see any items in my locked folder on Android anymore, instead they are visible in the regular timeline and show the "not synced" to immich icon. They are still in the locked folder when looking on the web app. Furthermore, I see logs on the immich server container that it tries to re-upload these pictures (see log output below). The referenced jpg corresponds with the pictures which previously where shown in the locked folder on my Android. ### The OS that Immich Server is running on AlmaLinux 9.6 ### Version of Immich Server v2.2.0 ### Version of Immich Mobile App v2.2.0 build.5023 ### Platform with the issue - [x] Server - [ ] Web - [x] Mobile ### Device make and model Pixel 9 ### Your docker-compose.yml content ```YAML Converted everything to Podman Quadlets (Systemd Unit Files) --- [Unit] Description=Immich Server Container Requires=immich-valkey.service immich-db.service [Service] Restart=always EnvironmentFile=%h/Podman/global.env [Container] ContainerName=immich-server Image=ghcr.io/immich-app/immich-server:v2 Pod=immich.pod AutoUpdate=registry SecurityLabelDisable=true Environment=IMMICH_WORKERS_INCLUDE='api' Environment=REDIS_HOSTNAME=immich-valkey Environment=DB_HOSTNAME=immich-db Environment=DB_DATABASE_NAME=immich Secret=immich_db_user,type=env,target=DB_USERNAME Secret=immich_db_password,type=env,target=DB_PASSWORD Volume=/mnt/nas/pictures/immich:/data Volume=/mnt/nas/photos/user:/mnt/nas/photos/user:ro Volume=/mnt/nas/photos/shared:/mnt/nas/photos/shared:ro Volume=/etc/localtime:/etc/localtime:ro [Install] WantedBy=default.target --- [Unit] Description=Immich Microservices Container Requires=immich-valkey.service immich-db.service [Service] Restart=always EnvironmentFile=%h/Podman/global.env [Container] ContainerName=immich-microservices Image=ghcr.io/immich-app/immich-server:v2 Pod=immich.pod AutoUpdate=registry SecurityLabelDisable=true Environment=IMMICH_WORKERS_EXCLUDE='api' Environment=REDIS_HOSTNAME=immich-valkey Environment=DB_HOSTNAME=immich-db Environment=DB_DATABASE_NAME=immich Secret=immich_db_user,type=env,target=DB_USERNAME Secret=immich_db_password,type=env,target=DB_PASSWORD Volume=/mnt/nas/pictures/immich/:/data Volume=/mnt/nas/photos/user/:/mnt/nas/photos/user:ro Volume=/mnt/nas/photos/shared/:/mnt/nas/photos/shared:ro Volume=/etc/localtime:/etc/localtime:ro [Install] WantedBy=default.target --- [Unit] Description=Immich ML Container Requires=immich-valkey.service immich-db.service [Service] Restart=always EnvironmentFile=%h/Podman/global.env [Container] ContainerName=immich-machine-learning Image=ghcr.io/immich-app/immich-machine-learning:v2 Pod=immich.pod AutoUpdate=registry Volume=%h/container_volumes/immich/cache:/cache:z Volume=/etc/localtime:/etc/localtime:ro [Install] WantedBy=default.target --- [Unit] Description=Valkey Container for Immich [Install] WantedBy=default.target [Container] ContainerName=immich-valkey Image=docker.io/valkey/valkey:8 Network=immich.network UIDMap=+999:@1000:1 GIDMap=+999:@1000:1 AutoUpdate=registry Exec=valkey-server --supervised systemd Notify=true Environment=TZ=${TZ} Volume=%h/container_volumes/immich/valkey:/data:z [Service] Restart=always EnvironmentFile=%h/Podman/global.env --- [Unit] Description=Immich Database Container Requires=immich-valkey.service [Service] Restart=always EnvironmentFile=%h/Podman/global.env [Container] ContainerName=immich-db Image=ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 Network=immich.network UIDMap=+999:@1000:1 GIDMap=+999:@1000:1 AutoUpdate=registry Environment=POSTGRES_INITDB_ARGS='--data-checksums' Environment=POSTGRES_DB=immich Secret=immich_db_user,type=env,target=POSTGRES_USER Secret=immich_db_password,type=env,target=POSTGRES_PASSWORD Volume=%h/container_volumes/immich/pgdata:/var/lib/postgresql/data:z [Install] WantedBy=default.target ``` ### Your .env content ```Shell - ``` ### Reproduction steps 1. Having pictures on phone and already uploaded to server put into locked folder (before upgrade) 2. Upgrade to v2.2.0 3. Moved all the pictures out of the locked folder in the web ui, but still have the error in the logs and the app still tries to upload all the pictures previously in the folder again ### Relevant log output ```shell Query failed : { durationMs: 1.535359000088647, error: PostgresError: duplicate key value violates unique constraint "UQ_assets_owner_checksum" at ErrorResponse (/usr/src/app/server/node_modules/.pnpm/postgres@3.4.7/node_modules/postgres/cjs/src/connection.js:794:26) at handle (/usr/src/app/server/node_modules/.pnpm/postgres@3.4.7/node_modules/postgres/cjs/src/connection.js:480:6) at Socket.data (/usr/src/app/server/node_modules/.pnpm/postgres@3.4.7/node_modules/postgres/cjs/src/connection.js:315:9) at Socket.emit (node:events:518:28) at addChunk (node:internal/streams/readable:561:12) at readableAddChunkPushByteMode (node:internal/streams/readable:512:3) at Readable.push (node:internal/streams/readable:392:5) at TCP.onStreamRead (node:internal/stream_base_commons:189:23) at TCP.callbackTrampoline (node:internal/async_hooks:130:17) { severity_local: 'ERROR', severity: 'ERROR', code: '23505', detail: 'Key ("ownerId", checksum)=(f12b4cf8-0638-4c34-b0fb-de2e3e3d8001, \\xe8158ba0b7b52673048c2bfb5c52d127c863f4bb) already exists.', schema_name: 'public', table_name: 'asset', constraint_name: 'UQ_assets_owner_checksum', file: 'nbtinsert.c', line: '663', routine: '_bt_check_unique' }, sql: 'insert into "asset" ("ownerId", "libraryId", "checksum", "originalPath", "deviceAssetId", "deviceId", "fileCreatedAt", "fileModifiedAt", "localDateTime", "type", "isFavorite", "duration", "visibility", "originalFileName") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) returning *', params: [ 'f12b4cf8-0638-4c34-b0fb-de2e3e3d8001', null, <Buffer e8 15 8b a0 b7 b5 26 73 04 8c 2b fb 5c 52 d1 27 c8 63 f4 bb>, '/data/upload/f12b4cf8-0638-4c34-b0fb-de2e3e3d8001/fb/7f/fb7f84da-94e7-4571-a867-c3dc15ec89b0.jpg', '1000010051', '83ff86fb55804b21c4bcd883583af20b72e8388a9da74307f4e756ccc31525c3', 2025-06-01T08:09:59.000Z, 2025-06-01T08:10:02.000Z, 2025-06-01T08:09:59.000Z, 'IMAGE', false, '0', 'timeline', 'PXL_20250601_080959357.jpg' ] } ``` ### Additional information _No response_
Author
Owner

@alextran1502 commented on GitHub (Oct 31, 2025):

Sign out and sign in will fix this, I assume you were using immich-go or using the Replace with Upload feature?

@alextran1502 commented on GitHub (Oct 31, 2025): Sign out and sign in will fix this, I assume you were using immich-go or using the Replace with Upload feature?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#7679