Mobile app fails to show new assets #3069

Closed
opened 2026-02-05 07:36:50 +03:00 by OVERLORD · 19 comments
Owner

Originally created by @natedawg on GitHub (May 7, 2024).

Originally assigned to: @alextran1502 on GitHub.

The bug

The mobile app fails to refresh and show new photos that are visible on the web. Pull to refresh shows a error in the log.

The OS that Immich Server is running on

Docker on debian

Version of Immich Server

v1.10.3.1

Version of Immich Mobile App

v1.10.3.1

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

NA

Your .env content

NA

Reproduction steps

1. View the timeline on android.
2. Expect to see new photos that show up on the web.
3. New photos fail to load even on pull to refresh. A error is shown in the log.
...

Relevant log output

PlatformDispatcher - Catch all


type '_Map<String, dynamic>' is not a subtype of type 'String' in type cast


#0      _CastListBase.[] (dart:_internal/cast.dart:99)
#1      ListBase.toList (dart:collection/list.dart:225)
#2      AuditDeletesResponseDto.fromJson (package:openapi/model/audit_deletes_response_dto.dart:54)
#3      ApiClient.fromJson (package:openapi/api_client.dart:262)
#4      ApiClient.deserialize (package:openapi/api_client.dart:158)
<asynchronous suspension>
#5      AuditApi.getAuditDeletes (package:openapi/api/audit_api.dart:74)
<asynchronous suspension>
#6      AssetService._getRemoteAssetChanges (package:immich_mobile/shared/services/asset.service.dart:57)
<asynchronous suspension>
#7      SyncService._syncRemoteAssetChanges (package:immich_mobile/shared/services/sync.service.dart:161)
<asynchronous suspension>
#8      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/shared/services/sync.service.dart:53)
<asynchronous suspension>
#9      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>

Additional information

Using traefik as a reverse proxy.

Originally created by @natedawg on GitHub (May 7, 2024). Originally assigned to: @alextran1502 on GitHub. ### The bug The mobile app fails to refresh and show new photos that are visible on the web. Pull to refresh shows a error in the log. ### The OS that Immich Server is running on Docker on debian ### Version of Immich Server v1.10.3.1 ### Version of Immich Mobile App v1.10.3.1 ### Platform with the issue - [ ] Server - [ ] Web - [X] Mobile ### Your docker-compose.yml content ```YAML NA ``` ### Your .env content ```Shell NA ``` ### Reproduction steps ```bash 1. View the timeline on android. 2. Expect to see new photos that show up on the web. 3. New photos fail to load even on pull to refresh. A error is shown in the log. ... ``` ### Relevant log output ```shell PlatformDispatcher - Catch all type '_Map<String, dynamic>' is not a subtype of type 'String' in type cast #0 _CastListBase.[] (dart:_internal/cast.dart:99) #1 ListBase.toList (dart:collection/list.dart:225) #2 AuditDeletesResponseDto.fromJson (package:openapi/model/audit_deletes_response_dto.dart:54) #3 ApiClient.fromJson (package:openapi/api_client.dart:262) #4 ApiClient.deserialize (package:openapi/api_client.dart:158) <asynchronous suspension> #5 AuditApi.getAuditDeletes (package:openapi/api/audit_api.dart:74) <asynchronous suspension> #6 AssetService._getRemoteAssetChanges (package:immich_mobile/shared/services/asset.service.dart:57) <asynchronous suspension> #7 SyncService._syncRemoteAssetChanges (package:immich_mobile/shared/services/sync.service.dart:161) <asynchronous suspension> #8 SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/shared/services/sync.service.dart:53) <asynchronous suspension> #9 AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15) <asynchronous suspension> ``` ### Additional information Using traefik as a reverse proxy.
OVERLORD added the 📱mobile label 2026-02-05 07:36:50 +03:00
Author
Owner

@alextran1502 commented on GitHub (May 7, 2024):

The current workaround is to logout and log back in, we are looking into identifying the root cause

@alextran1502 commented on GitHub (May 7, 2024): The current workaround is to logout and log back in, we are looking into identifying the root cause
Author
Owner

@kitkatod commented on GitHub (May 8, 2024):

I'm also running into the issue described here, however the workaround of logging out/in on the Android app does not resolve the issue and items are still missing from the timeline. Even uninstalling/reinstalling the app does not seem to affect the behavior.

Images are displayed when viewing the album through the "Backup Albums" selection menu, however not on the timeline and never synced.

If this should be a separate issue opened let me know.

@kitkatod commented on GitHub (May 8, 2024): I'm also running into the issue described here, however the workaround of logging out/in on the Android app does not resolve the issue and items are still missing from the timeline. Even uninstalling/reinstalling the app does not seem to affect the behavior. Images are displayed when viewing the album through the "Backup Albums" selection menu, however not on the timeline and never synced. If this should be a separate issue opened let me know.
Author
Owner

@alextran1502 commented on GitHub (May 8, 2024):

@kitkatod @natedawg Can you help me with some data points that if

  1. You are connecting your instance over a reverse proxy/VPN?
  2. You are using Android?
@alextran1502 commented on GitHub (May 8, 2024): @kitkatod @natedawg Can you help me with some data points that if 1. You are connecting your instance over a reverse proxy/VPN? 2. You are using Android?
Author
Owner

@itzTheMeow commented on GitHub (May 8, 2024):

I'm also having the same issue on the iOS app.
Using a VPN and my instance is behind an nginx reverse proxy.

Logging out and back in loads the new assets.

type '_Map<String, dynamic>' is not a subtype of type 'String' in type cast

#0      _CastListBase.[] (dart:_internal/cast.dart:99)
#1      ListBase.toList (dart:collection/list.dart:225)
#2      AuditDeletesResponseDto.fromJson (package:openapi/model/audit_deletes_response_dto.dart:54)
#3      ApiClient.fromJson (package:openapi/api_client.dart:262)
#4      ApiClient.deserialize (package:openapi/api_client.dart:158)
<asynchronous suspension>
#5      AuditApi.getAuditDeletes (package:openapi/api/audit_api.dart:74)
<asynchronous suspension>
#6      AssetService._getRemoteAssetChanges (package:immich_mobile/shared/services/asset.service.dart:57)
<asynchronous suspension>
#7      SyncService._syncRemoteAssetChanges (package:immich_mobile/shared/services/sync.service.dart:161)
<asynchronous suspension>
#8      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/shared/services/sync.service.dart:53)
<asynchronous suspension>
#9      AssetService.refreshRemoteAssets (package:immich_mobile/shared/services/asset.service.dart:45)
<asynchronous suspension>
#10     AssetNotifier.getAllAsset (package:immich_mobile/shared/providers/asset.provider.dart:52)
<asynchronous suspension>
@itzTheMeow commented on GitHub (May 8, 2024): I'm also having the same issue on the iOS app. Using a VPN and my instance is behind an nginx reverse proxy. Logging out and back in loads the new assets. ``` type '_Map<String, dynamic>' is not a subtype of type 'String' in type cast #0 _CastListBase.[] (dart:_internal/cast.dart:99) #1 ListBase.toList (dart:collection/list.dart:225) #2 AuditDeletesResponseDto.fromJson (package:openapi/model/audit_deletes_response_dto.dart:54) #3 ApiClient.fromJson (package:openapi/api_client.dart:262) #4 ApiClient.deserialize (package:openapi/api_client.dart:158) <asynchronous suspension> #5 AuditApi.getAuditDeletes (package:openapi/api/audit_api.dart:74) <asynchronous suspension> #6 AssetService._getRemoteAssetChanges (package:immich_mobile/shared/services/asset.service.dart:57) <asynchronous suspension> #7 SyncService._syncRemoteAssetChanges (package:immich_mobile/shared/services/sync.service.dart:161) <asynchronous suspension> #8 SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/shared/services/sync.service.dart:53) <asynchronous suspension> #9 AssetService.refreshRemoteAssets (package:immich_mobile/shared/services/asset.service.dart:45) <asynchronous suspension> #10 AssetNotifier.getAllAsset (package:immich_mobile/shared/providers/asset.provider.dart:52) <asynchronous suspension> ```
Author
Owner

@alextran1502 commented on GitHub (May 8, 2024):

Are you guys also have background backup enabled?

@alextran1502 commented on GitHub (May 8, 2024): Are you guys also have background backup enabled?
Author
Owner

@alextran1502 commented on GitHub (May 8, 2024):

If you guys install the app over the APK file in the release, can you try downloading this APK to see if it helps resolve the issue?

https://drive.google.com/file/d/1WLkzkqP4PLjdUFE17IJYwUdG-1xy4HnW/view?usp=sharing

@alextran1502 commented on GitHub (May 8, 2024): If you guys install the app over the APK file in the release, can you try downloading this APK to see if it helps resolve the issue? https://drive.google.com/file/d/1WLkzkqP4PLjdUFE17IJYwUdG-1xy4HnW/view?usp=sharing
Author
Owner

@itzTheMeow commented on GitHub (May 8, 2024):

I do not have backup enabled.
Also all of my libraries are external.

@itzTheMeow commented on GitHub (May 8, 2024): I do not have backup enabled. Also all of my libraries are external.
Author
Owner

@kitkatod commented on GitHub (May 8, 2024):

I can confirm I'm currently running Immich behind a Caddy reverse proxy, and Immich on a Pixel 8 Pro.

After uninstalling Immich on Android and installing the referenced APK it seems to be finding all of the assets it missed!

@kitkatod commented on GitHub (May 8, 2024): I can confirm I'm currently running Immich behind a Caddy reverse proxy, and Immich on a Pixel 8 Pro. After uninstalling Immich on Android and installing the referenced APK it seems to be finding all of the assets it missed!
Author
Owner

@alextran1502 commented on GitHub (May 8, 2024):

@kitkatod Thank you for help me test the APK. Can you try taking a few photos, wait a bit, then go to the app and see if the app can detect those new photos?

@alextran1502 commented on GitHub (May 8, 2024): @kitkatod Thank you for help me test the APK. Can you try taking a few photos, wait a bit, then go to the app and see if the app can detect those new photos?
Author
Owner

@kitkatod commented on GitHub (May 8, 2024):

I just finished taking a few pictures. Images were uploaded quickly and appeared on the Immich website within seconds. I also followed the same steps after disabling wifi, and after a short delay images started to be uploaded.

@kitkatod commented on GitHub (May 8, 2024): I just finished taking a few pictures. Images were uploaded quickly and appeared on the Immich website within seconds. I also followed the same steps after disabling wifi, and after a short delay images started to be uploaded.
Author
Owner

@natedawg commented on GitHub (May 8, 2024):

@alextran1502

Can you help me with some data points that if

1. You are connecting your instance over a reverse proxy/VPN?

2. You are using Android?

I'm using traefik as a reverse proxy and Android with no background sync. Most assets are in a external library.

FYI There was a major Traefik release v3.0 this week. I have not had time to go over the release notes or do any migration if needed. However it looks like others here are using different proxies though.

I will test the apk later today,

@natedawg commented on GitHub (May 8, 2024): @alextran1502 > Can you help me with some data points that if > > 1. You are connecting your instance over a reverse proxy/VPN? > > 2. You are using Android? I'm using traefik as a reverse proxy and Android with no background sync. Most assets are in a external library. FYI There was a major Traefik release `v3.0` this week. I have not had time to go over the release notes or do any migration if needed. However it looks like others here are using different proxies though. I will test the apk later today,
Author
Owner

@frejaya commented on GitHub (May 8, 2024):

I've had this problem as well. It usually goes away eventually and I keep the icon feature turned off so I mostly ignore it but it's been troublesome for creating albums.

I'm running Immich on Synology NAS DSM with the built-in reverse proxy feature that Synology provides in the control panel of DSM. App on iOS

@frejaya commented on GitHub (May 8, 2024): I've had this problem as well. It usually goes away eventually and I keep the icon feature turned off so I mostly ignore it but it's been troublesome for creating albums. I'm running Immich on Synology NAS DSM with the built-in reverse proxy feature that Synology provides in the control panel of DSM. App on iOS
Author
Owner

@alextran1502 commented on GitHub (May 8, 2024):

I am hoping the APK is the fix for the solution so we can push out an update for the next release to fix this issue

@alextran1502 commented on GitHub (May 8, 2024): I am hoping the APK is the fix for the solution so we can push out an update for the next release to fix this issue
Author
Owner

@natedawg commented on GitHub (May 8, 2024):

Just tested the apk and it's working. New photos show up on Android when opening the app and when refreshing. There are no errors in the log.

@natedawg commented on GitHub (May 8, 2024): Just tested the apk and it's working. New photos show up on Android when opening the app and when refreshing. There are no errors in the log.
Author
Owner

@freemjohn commented on GitHub (May 11, 2024):

https://github.com/immich-app/immich/issues/9389
Direct connection with stunnel does not fixes this issue.

@freemjohn commented on GitHub (May 11, 2024): https://github.com/immich-app/immich/issues/9389 Direct connection with stunnel does not fixes this issue.
Author
Owner

@alextran1502 commented on GitHub (May 11, 2024):

@freemjohn can you try the APK linked in this issue?

@alextran1502 commented on GitHub (May 11, 2024): @freemjohn can you try the APK linked in this issue?
Author
Owner

@freemjohn commented on GitHub (May 12, 2024):

@freemjohn can you try the APK linked in this issue?

Harder than looks, can't just update, different signature, forced to resetup

@freemjohn commented on GitHub (May 12, 2024): > @freemjohn can you try the APK linked in this issue? Harder than looks, can't just update, different signature, forced to resetup
Author
Owner

@freemjohn commented on GitHub (May 15, 2024):

Looks like fixed in test version above(cant be updated) and latest update(thats the way) 1.105.1

@freemjohn commented on GitHub (May 15, 2024): Looks like fixed in test version above(cant be updated) and latest update(thats the way) 1.105.1
Author
Owner

@freemjohn commented on GitHub (May 16, 2024):

Tested on +4 devices, still need to relogin or no new photos shown 2/4 devices.

@freemjohn commented on GitHub (May 16, 2024): Tested on +4 devices, still need to relogin or no new photos shown 2/4 devices.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#3069