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

Immich on ios download remote "Most Compatible" from camera's settings image has different checksum #12909

Closed
1 of 3 tasks
dvbthien opened this issue Sep 24, 2024 · 15 comments · Fixed by #13609
Closed
1 of 3 tasks

Comments

@dvbthien
Copy link
Contributor

The bug

When I download a remote image on iOS 15.1, the locally downloaded image has a different checksum than the remote image. As a result, immich displays two images: one local image and one remote image. This issue only occurs when downloading images. I have tested with videos, and they are normal. It only happens with images.

You can watch the video: Link

I also verify the image integrity by downloading it from the Immich web interface, then Airdropping it to my iPhone. Immich on iOS correctly displays the image with a cloud check icon

The OS that Immich Server is running on

Linux-Synology

Version of Immich Server

v1.115.0

Version of Immich Mobile App

v1.115.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

Not relevant

Your .env content

Not relevant

Reproduction steps

  1. Download remote image on ios.
  2. Immich on ios can show both locally downloaded images and images from remote sources.

Relevant log output

2024-09-24 12:16:12.791471 | INFO     | SyncService          | Synced changes of local album Imou Life to DB |
2024-09-24 12:16:12.742259 | INFO     | SyncService          | Synced changes of local album VCUS to DB |
2024-09-24 12:16:12.718330 | INFO     | AlbumService         | Found 15 device albums |
2024-09-24 12:16:12.298243 | INFO     | AlbumService         | Syncing completed. Changes: true |
2024-09-24 12:16:12.298234 | INFO     | SyncService          | Added a new local album to DB: Video |
2024-09-24 12:16:12.295651 | INFO     | SyncService          | Upserted 488 assets into the DB |
2024-09-24 12:16:12.272041 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 488 |
2024-09-24 12:16:12.268236 | WARNING  | SyncService          | Ignored 1 duplicate assets on device |
2024-09-24 12:16:12.268179 | INFO     | SyncService          | Ignoring duplicate assets on device:
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "824196A6-2C68-4A90-ACF7-6B78DCC6C036/L0/001",
  "checksum": "8NvsVKemZYD1UUop2CIZYuHYSPE=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-06-13 06:40:16.000",
  "fileModifiedAt": "2024-08-04 13:16:52.000",
  "updatedAt": "2024-08-04 13:16:52.000",
  "durationInSeconds": 14,
  "type": "AssetType.video",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 2160,
  "height": 3840,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
}
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "9CB239DE-1F0B-4861-A712-7101FFA19370/L0/001",
  "checksum": "8NvsVKemZYD1UUop2CIZYuHYSPE=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-06-13 06:40:16.000",
  "fileModifiedAt": "2024-08-16 23:54:55.000",
  "updatedAt": "2024-08-16 23:54:55.000",
  "durationInSeconds": 14,
  "type": "AssetType.video",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 2160,
  "height": 3840,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
} |
2024-09-24 12:16:12.210565 | INFO     | SyncService          | Syncing a new local album to DB: Video |
2024-09-24 12:16:12.210557 | INFO     | SyncService          | Added a new local album to DB: DDPAI |
2024-09-24 12:16:12.209463 | INFO     | SyncService          | Upserted 1 assets into the DB |
2024-09-24 12:16:12.207866 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 1 |
2024-09-24 12:16:12.177545 | INFO     | SyncService          | Syncing a new local album to DB: DDPAI |
2024-09-24 12:16:12.177538 | INFO     | SyncService          | Added a new local album to DB: LoFiCam |
2024-09-24 12:16:12.176463 | INFO     | SyncService          | Upserted 1 assets into the DB |
2024-09-24 12:16:12.175398 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 1 |
2024-09-24 12:16:12.143652 | INFO     | SyncService          | Syncing a new local album to DB: LoFiCam |
2024-09-24 12:16:12.143645 | INFO     | SyncService          | Added a new local album to DB: Ảnh selfie |
2024-09-24 12:16:12.142266 | INFO     | SyncService          | Upserted 17 assets into the DB |
2024-09-24 12:16:12.135587 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 17 |
2024-09-24 12:16:12.102082 | INFO     | SyncService          | Syncing a new local album to DB: Ảnh selfie |
2024-09-24 12:16:12.102048 | INFO     | SyncService          | Added a new local album to DB: Nyx |
2024-09-24 12:16:12.100673 | INFO     | SyncService          | Upserted 1 assets into the DB |
2024-09-24 12:16:12.099692 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 1 |
2024-09-24 12:16:12.063108 | INFO     | SyncService          | Syncing a new local album to DB: Nyx |
2024-09-24 12:16:12.063077 | INFO     | SyncService          | Added a new local album to DB: Live Photos |
2024-09-24 12:16:12.061709 | INFO     | SyncService          | Upserted 18 assets into the DB |
2024-09-24 12:16:12.055861 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 18 |
2024-09-24 12:16:12.023475 | INFO     | SyncService          | Syncing a new local album to DB: Live Photos |
2024-09-24 12:16:12.023444 | INFO     | SyncService          | Added a new local album to DB: Quay chậm |
2024-09-24 12:16:12.022184 | INFO     | SyncService          | Upserted 1 assets into the DB |
2024-09-24 12:16:12.021015 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 1 |
2024-09-24 12:16:11.989968 | INFO     | SyncService          | Syncing a new local album to DB: Quay chậm |
2024-09-24 12:16:11.989931 | INFO     | SyncService          | Added a new local album to DB: Instagram |
2024-09-24 12:16:11.988410 | INFO     | SyncService          | Upserted 41 assets into the DB |
2024-09-24 12:16:11.978224 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 41 |
2024-09-24 12:16:11.977556 | WARNING  | SyncService          | Ignored 1 duplicate assets on device |
2024-09-24 12:16:11.977001 | INFO     | SyncService          | Ignoring duplicate assets on device:
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "C9ED786A-343E-4CF9-BA9A-4BE698BDD026/L0/001",
  "checksum": "EZz7J8c9geGZ694PBKeqYBxFBTM=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-06-22 20:46:11.000",
  "fileModifiedAt": "2024-06-22 20:46:14.000",
  "updatedAt": "2024-06-22 20:46:14.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1125,
  "height": 2000,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
}
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "3125E8CC-B3E1-4FA3-AD81-BB57A92487B4/L0/001",
  "checksum": "EZz7J8c9geGZ694PBKeqYBxFBTM=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-06-22 20:46:11.000",
  "fileModifiedAt": "2024-06-22 21:04:31.000",
  "updatedAt": "2024-06-22 21:04:31.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1125,
  "height": 2000,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
} |
2024-09-24 12:16:11.946165 | INFO     | SyncService          | Syncing a new local album to DB: Instagram |
2024-09-24 12:16:11.946136 | INFO     | SyncService          | Added a new local album to DB: Chân dung |
2024-09-24 12:16:11.944595 | INFO     | SyncService          | Upserted 54 assets into the DB |
2024-09-24 12:16:11.933967 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 54 |
2024-09-24 12:16:11.896124 | INFO     | SyncService          | Syncing a new local album to DB: Chân dung |
2024-09-24 12:16:11.896094 | INFO     | SyncService          | Added a new local album to DB: TOK CAM |
2024-09-24 12:16:11.894940 | INFO     | SyncService          | Upserted 3 assets into the DB |
2024-09-24 12:16:11.893592 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 3 |
2024-09-24 12:16:11.861062 | INFO     | SyncService          | Syncing a new local album to DB: TOK CAM |
2024-09-24 12:16:11.861027 | INFO     | SyncService          | Added a new local album to DB: Mục ưa thích |
2024-09-24 12:16:11.859425 | INFO     | SyncService          | Upserted 153 assets into the DB |
2024-09-24 12:16:11.845715 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 153 |
2024-09-24 12:16:11.789790 | INFO     | SyncService          | Syncing a new local album to DB: Mục ưa thích |
2024-09-24 12:16:11.789737 | INFO     | SyncService          | Added a new local album to DB: Ảnh màn hình |
2024-09-24 12:16:11.787307 | INFO     | SyncService          | Upserted 194 assets into the DB |
2024-09-24 12:16:11.759236 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 194 |
2024-09-24 12:16:11.699525 | INFO     | SyncService          | Syncing a new local album to DB: Ảnh màn hình |
2024-09-24 12:16:11.699466 | INFO     | SyncService          | Added a new local album to DB: Gần đây |
2024-09-24 12:16:11.681835 | INFO     | SyncService          | Upserted 2514 assets into the DB |
2024-09-24 12:16:11.524005 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 2514 |
2024-09-24 12:16:11.512155 | WARNING  | SyncService          | Ignored 6 duplicate assets on device |
2024-09-24 12:16:11.511038 | INFO     | SyncService          | Ignoring duplicate assets on device:
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "51CD52E9-51D8-4CA1-8FF0-C0B64BA45D27/L0/001",
  "checksum": "u843JWVHsTmTp8ju94Uz2EPQdpg=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-03-27 13:59:39.000",
  "fileModifiedAt": "2024-03-27 13:59:39.000",
  "updatedAt": "2024-03-27 13:59:39.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1536,
  "height": 2048,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
}
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "4B85F723-14ED-4C3C-B266-E9303B4EF832/L0/001",
  "checksum": "u843JWVHsTmTp8ju94Uz2EPQdpg=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-03-27 15:59:27.000",
  "fileModifiedAt": "2024-03-27 15:59:27.000",
  "updatedAt": "2024-03-27 15:59:27.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1536,
  "height": 2048,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
} |
2024-09-24 12:16:11.509884 | INFO     | SyncService          | Ignoring duplicate assets on device:
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "416845D4-C494-4650-BDF9-88B9165F6234/L0/001",
  "checksum": "leecIVMF2OLN454cPDydFNmIUe0=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-03-27 13:59:42.000",
  "fileModifiedAt": "2024-03-27 13:59:42.000",
  "updatedAt": "2024-03-27 13:59:42.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1536,
  "height": 2048,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
}
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "BF128094-A38E-498F-ADFA-48A314C91B37/L0/001",
  "checksum": "leecIVMF2OLN454cPDydFNmIUe0=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-03-27 15:59:28.000",
  "fileModifiedAt": "2024-04-01 20:59:17.000",
  "updatedAt": "2024-04-01 20:59:17.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1536,
  "height": 2048,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
} |
2024-09-24 12:16:11.508462 | INFO     | SyncService          | Ignoring duplicate assets on device:
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "B6EB13C7-AF31-4D13-A797-DE465961A6B2/L0/001",
  "checksum": "EyeskKNiCmUOVYhRxAK1yxkRC3U=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-04-02 11:42:21.000",
  "fileModifiedAt": "2024-04-02 11:42:21.000",
  "updatedAt": "2024-04-02 11:42:21.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1500,
  "height": 1500,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
}
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "82CE6502-23F7-4E38-B17C-AD4BCDB184D8/L0/001",
  "checksum": "EyeskKNiCmUOVYhRxAK1yxkRC3U=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-04-02 15:01:03.000",
  "fileModifiedAt": "2024-04-02 15:01:03.000",
  "updatedAt": "2024-04-02 15:01:03.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1500,
  "height": 1500,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
} |
2024-09-24 12:16:11.507396 | INFO     | SyncService          | Ignoring duplicate assets on device:
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "C9ED786A-343E-4CF9-BA9A-4BE698BDD026/L0/001",
  "checksum": "EZz7J8c9geGZ694PBKeqYBxFBTM=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-06-22 20:46:11.000",
  "fileModifiedAt": "2024-06-22 20:46:14.000",
  "updatedAt": "2024-06-22 20:46:14.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1125,
  "height": 2000,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
}
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "3125E8CC-B3E1-4FA3-AD81-BB57A92487B4/L0/001",
  "checksum": "EZz7J8c9geGZ694PBKeqYBxFBTM=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-06-22 20:46:11.000",
  "fileModifiedAt": "2024-06-22 21:04:31.000",
  "updatedAt": "2024-06-22 21:04:31.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1125,
  "height": 2000,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
} |
2024-09-24 12:16:11.506294 | INFO     | SyncService          | Ignoring duplicate assets on device:
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "DE4FB851-CC0F-443F-871B-528FA20A9ABC/L0/001",
  "checksum": "DbgQhuoHo/4SY1jaCd5Tjf/QKaw=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-04-01 23:10:12.000",
  "fileModifiedAt": "2024-04-01 23:10:12.000",
  "updatedAt": "2024-04-01 23:10:12.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1500,
  "height": 1500,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
}
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "1C104879-4D10-4FDD-B8A4-4DF0C6A16878/L0/001",
  "checksum": "DbgQhuoHo/4SY1jaCd5Tjf/QKaw=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-04-01 23:12:08.000",
  "fileModifiedAt": "2024-04-01 23:12:08.000",
  "updatedAt": "2024-04-01 23:12:08.000",
  "durationInSeconds": 0,
  "type": "AssetType.image",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 1500,
  "height": 1500,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
} |
2024-09-24 12:16:11.505010 | INFO     | SyncService          | Ignoring duplicate assets on device:
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "824196A6-2C68-4A90-ACF7-6B78DCC6C036/L0/001",
  "checksum": "8NvsVKemZYD1UUop2CIZYuHYSPE=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-06-13 06:40:16.000",
  "fileModifiedAt": "2024-08-04 13:16:52.000",
  "updatedAt": "2024-08-04 13:16:52.000",
  "durationInSeconds": 14,
  "type": "AssetType.video",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 2160,
  "height": 3840,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
}
{
  "id": "N/A",
  "remoteId": "N/A",
  "localId": "9CB239DE-1F0B-4861-A712-7101FFA19370/L0/001",
  "checksum": "8NvsVKemZYD1UUop2CIZYuHYSPE=",
  "ownerId": 4877173046611587490,
  "livePhotoVideoId": "N/A",
  "stackId": "N/A",
  "stackPrimaryAssetId": "N/A",
  "stackCount": "0",
  "fileCreatedAt": "2024-06-13 06:40:16.000",
  "fileModifiedAt": "2024-08-16 23:54:55.000",
  "updatedAt": "2024-08-16 23:54:55.000",
  "durationInSeconds": 14,
  "type": "AssetType.video",
  "fileName": "",
  "isFavorite": false,
  "isRemote": false,
  "storage": "AssetState.local",
  "width": 2160,
  "height": 3840,
  "isArchived": false,
  "isTrashed": false,
  "isOffline": false,
} |
2024-09-24 12:14:25.568666 | INFO     | SyncService          | Syncing a new local album to DB: Gần đây |
2024-09-24 12:14:25.568630 | INFO     | SyncService          | Added a new local album to DB: Imou Life |
2024-09-24 12:14:25.567771 | INFO     | SyncService          | Upserted 1 assets into the DB |
2024-09-24 12:14:25.566881 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 1 |
2024-09-24 12:14:25.479767 | INFO     | SyncService          | Syncing a new local album to DB: Imou Life |
2024-09-24 12:14:25.479642 | INFO     | SyncService          | Added a new local album to DB: VCUS |
2024-09-24 12:14:25.477276 | INFO     | SyncService          | Upserted 4 assets into the DB |
2024-09-24 12:14:25.473704 | INFO     | SyncService          | 0 assets already existed in DB, to upsert 4 |
2024-09-24 12:14:24.554633 | INFO     | SyncService          | Syncing a new local album to DB: VCUS |
2024-09-24 12:14:24.554061 | INFO     | AlbumService         | Found 15 device albums |
2024-09-24 12:14:19.433746 | INFO     | BackupNotifier       | No assets are selected for back up |
2024-09-24 12:14:19.197646 | INFO     | BackupNotifier       | _getBackupAlbumsInfo: Found 29 available albums |
2024-09-24 12:14:19.196924 | INFO     | BackupNotifier       | Found 29 local albums |
2024-09-24 12:14:17.971024 | INFO     | BackupNotifier       | No assets are selected for back up |
2024-09-24 12:14:17.748416 | INFO     | BackupNotifier       | _getBackupAlbumsInfo: Found 29 available albums |
2024-09-24 12:14:17.747685 | INFO     | BackupNotifier       | Found 29 local albums |
2024-09-24 12:14:14.185533 | INFO     | AssetNotifier        | Load assets: 2691ms |
2024-09-24 12:14:14.183709 | INFO     | SyncService          | Upserted 7889 assets into the DB |
2024-09-24 12:14:10.977376 | INFO     | ApiService           | Pinging server with response code 200 |
2024-09-24 12:13:51.272750 | INFO     | ApiService           | Pinging server with response code 200 |
2024-09-24 12:13:36.174441 | SEVERE   | AuthenticationNotifier | Logout failed | LateInitializationError: Field 'authenticationApi' has not been initialized. |
#0      AuthenticationNotifier.logout (package:immich_mobile/providers/authentication.provider.dart)
#1      SplashScreenPage.build.performLoggingIn (package:immich_mobile/pages/common/splash_screen.page.dart:56)
#2      SplashScreenPage.build.<anonymous closure> (package:immich_mobile/pages/common/splash_screen.page.dart:73)
#3      _EffectHookState.scheduleEffect (package:flutter_hooks/src/primitives.dart:229)
#4      _EffectHookState.initHook (package:flutter_hooks/src/primitives.dart:209)
#5      _extension#0._createHookState (package:flutter_hooks/src/framework.dart:341)
#6      _extension#0._appendHook (package:flutter_hooks/src/framework.dart:352)
#7      HookElement._use (package:flutter_hooks/src/framework.dart:460)
#8      Hook.use (package:flutter_hooks/src/framework.dart:139)
#9      use (package:flutter_hooks/src/framework.dart:18)
#10     useEffect (package:flutter_hooks/src/primitives.dart:191)
#11     SplashScreenPage.build (package:immich_mobile/pages/common/splash_screen.page.dart:71)
#12     _ConsumerState.build (package:flutter_riverpod/src/consumer.dart:476)
#13     StatefulElement.build (package:flutter/src/widgets/framework.dart:5729)
#14     ConsumerStatefulElement.build (package:flutter_riverpod/src/consumer.dart:539)
#15     HookElement.build (package:flutter_hooks/src/framework.dart:438)
#16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5617)
#17     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#18     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#19     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#20     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#21     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#22     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#23     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#24     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#25     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#26     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#27     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#28     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#29     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#30     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#31     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#32     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#33     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#34     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#35     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#36     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#37     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#38     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#39     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#40     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#41     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#42     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#43     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#44     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#45     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#46     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#47     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#48     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#49     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#50     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#51     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#52     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7035)
#53     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7047)
#54     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#55     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#56     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#57     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#58     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#59     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#60     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#61     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#62     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#63     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#64     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#65     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#66     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#67     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#68     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#69     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#70     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#71     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#72     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#73     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#74     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#75     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#76     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#77     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#78     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#79     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#80     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#81     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#82     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#83     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#84     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#85     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#86     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#87     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#88     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#89     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#90     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#91     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#92     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#93     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#94     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#95     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#96     Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#97     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#98     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#99     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#100    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#101    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#102    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#103    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#104    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#105    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#106    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#107    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#108    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#109    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#110    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#111    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#112    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#113    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#114    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#115    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#116    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#117    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#118    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#119    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#120    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#121    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#122    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#123    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#124    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#125    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#126    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#127    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#128    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#129    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#130    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#131    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#132    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#133    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#134    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#135    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#136    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#137    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#138    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#139    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#140    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#141    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#142    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#143    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#144    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#145    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#146    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#147    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#148    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#149    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#150    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#151    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#152    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#153    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#154    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#155    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#156    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#157    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#158    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#159    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#160    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#161    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#162    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#163    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#164    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#165    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#166    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#167    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#168    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#169    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#170    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#171    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#172    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#173    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#174    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#175    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#176    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#177    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#178    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#179    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#180    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#181    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#182    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#183    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#184    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#185    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#186    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#187    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#188    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#189    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#190    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#191    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#192    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#193    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#194    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#195    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#196    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#197    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#198    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#199    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#200    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#201    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#202    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#203    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#204    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#205    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#206    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#207    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#208    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#209    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#210    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#211    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#212    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#213    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#214    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#215    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#216    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#217    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#218    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#219    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#220    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#221    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#222    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#223    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#224    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#225    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#226    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#227    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#228    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#229    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#230    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#231    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#232    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#233    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#234    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#235    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#236    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#237    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#238    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#239    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#240    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#241    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#242    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7035)
#243    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7047)
#244    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#245    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#246    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#247    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#248    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#249    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#250    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#251    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#252    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#253    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#254    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#255    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#256    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#257    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#258    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#259    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#260    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#261    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#262    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#263    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#264    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#265    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#266    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#267    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#268    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#269    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#270    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#271    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#272    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#273    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#274    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#275    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#276    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#277    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#278    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#279    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#280    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#281    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#282    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#283    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#284    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#285    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#286    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#287    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#288    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#289    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#290    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#291    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#292    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#293    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#294    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#295    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#296    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#297    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#298    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#299    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6900)
#300    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#301    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#302    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#303    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#304    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#305    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#306    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#307    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#308    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#309    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#310    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#311    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#312    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#313    Element.updateChild (package:flutter/src/widgets/framework.dart:3963)
#314    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#315    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#316    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#317    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5599)
#318    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5771)
#319    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5593)
#320    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468)
#321    Element.updateChild (package:flutter/src/widgets/framework.dart:3957)
#322    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#323    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#324    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#325    StatefulElement.update (package:flutter/src/widgets/framework.dart:5803)
#326    Element.updateChild (package:flutter/src/widgets/framework.dart:3941)
#327    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#328    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#329    ProxyElement.update (package:flutter/src/widgets/framework.dart:5946)
#330    Element.updateChild (package:flutter/src/widgets/framework.dart:3941)
#331    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#332    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#333    ProxyElement.update (package:flutter/src/widgets/framework.dart:5946)
#334    Element.updateChild (package:flutter/src/widgets/framework.dart:3941)
#335    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#336    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#337    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#338    StatefulElement.update (package:flutter/src/widgets/framework.dart:5803)
#339    Element.updateChild (package:flutter/src/widgets/framework.dart:3941)
#340    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#341    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#342    StatelessElement.update (package:flutter/src/widgets/framework.dart:5693)
#343    Element.updateChild (package:flutter/src/widgets/framework.dart:3941)
#344    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#345    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#346    ProxyElement.update (package:flutter/src/widgets/framework.dart:5946)
#347    Element.updateChild (package:flutter/src/widgets/framework.dart:3941)
#348    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#349    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#350    ProxyElement.update (package:flutter/src/widgets/framework.dart:5946)
#351    Element.updateChild (package:flutter/src/widgets/framework.dart:3941)
#352    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642)
#353    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780)
#354    Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#355    BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2693)
#356    BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2752)
#357    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3048)
#358    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1162)
#359    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468)
#360    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397)
#361    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318)
#362    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176)
#363    _invoke (dart:ui/hooks.dart:312)
#364    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419)
#365    _drawFrame (dart:ui/hooks.dart:283)

Additional information

No response

@alextran1502
Copy link
Contributor

I assume you did not use the download button from the asset viewer but from the native share sheet?

@dvbthien
Copy link
Contributor Author

dvbthien commented Sep 25, 2024

Hi @alextran1502

It seems to happen only with images, videos and live photos are working normally. The bug above occurs when I use the download button from the asset viewer. I just tested downloading an image from both the download button in the asset viewer and the native share sheet, and both seem to have the issue.

Thanks

@dvbthien
Copy link
Contributor Author

dvbthien commented Sep 26, 2024

Hi @alextran1502
Additional information:
When I download a remote image on iOS 16.7 from a different iPhone, I can download the same remote image without issue. However, the problem persists when the image is a .jpg taken with an iPhone. This is confusing.

@florihupf
Copy link

Same here.

@alextran1502 alextran1502 changed the title Immich on ios download remote image has different checksum Immich on ios download remote "Most Compatible" from camera's settings image has different checksum Sep 30, 2024
@alextran1502
Copy link
Contributor

Confirmed, pretty weird indeed

@dvbthien
Copy link
Contributor Author

dvbthien commented Sep 30, 2024

Hi @alextran1502,

Images with different hashes will have different metadata. I think it's because of the photo_manager package. I've already updated it to v3.5.0 and photo_manager_image_provider to v2.1.2, but the issue still happens after the update.

@alextran1502
Copy link
Contributor

@dvbthien I came to the same conclusion, I will open an issue in photo_manager package soon

@dvbthien
Copy link
Contributor Author

dvbthien commented Oct 1, 2024

Hi @alextran1502,

Just as I thought, the issue was caused by the photo_manager package. saveImage and saveImageWithPath in photo_manager use PHAssetCreationRequest in Swift to create a new Photos asset, which sometimes changes the info metadata and results in a file with a different hash. I think the author's photo_manager needs to add a creationRequestForAssetFromImageAtFileURL method that will create a request for adding a new image asset to the Photos library without changing the file, thus preserving the hash. I found this when I tried the gal package and used Gal.putImage to save an image to my gallery; the issue didn't happen.

This is the native iOS code Gal uses: Code

This is the native iOS code photo_manager uses: Code

This Apple document provides an explanation of creationRequestForAssetFromImageAtFileURL and PHAssetCreationRequest

@dvbthien
Copy link
Contributor Author

dvbthien commented Oct 1, 2024

I have opened an issue in the photo_manager.
fluttercandies/flutter_photo_manager#1193

@interunivers
Copy link

Cool that you figured that all out so fast. It drives me crazy already since a few app release and I wasn’t sure if that behaviour is intentional or a bug.

@ngtrio
Copy link
Contributor

ngtrio commented Oct 12, 2024

I previously opened a related issue (#8815) and am looking forward to it being resolved!

@florihupf
Copy link

florihupf commented Oct 12, 2024

I am just here to say "thank you" for you guys fixing this. My No.1 use case issue with Immich 👍

╭━━━━┳╮╱╱╱╱╱╱╱╭╮
┃╭╮╭╮┃┃╱╱╱╱╱╱╱┃┃
╰╯┃┃╰┫╰━┳━━┳━╮┃┃╭╮
╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╰╯╯
╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╭╮╮
╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻╯╰╯
╭╮╱╭┳━━┳╮╭╮
┃┃╱┃┃╭╮┃┃┃┃
┃╰━╯┃╰╯┃╰╯┃
╰━╮╭┻━━┻━━╯
╭━╯┃
╰━━╯

@ngtrio
Copy link
Contributor

ngtrio commented Oct 15, 2024

flutter_photo_manager released a new update yesterday that includes a fix for the issue. @alextran1502, could you please upgrade the dependency?

@alextran1502
Copy link
Contributor

@ngtrio we are already in a new release process so that update will be in after v1.118.0

@dvbthien
Copy link
Contributor Author

Hi @alextran1502,

I have just created pull request to fix this issue, can you help me review it?

Thanks

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.

5 participants