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

Since apk v1.105.0 login/upload possible but timeline won't refresh, keeps spinning #9534

Open
1 of 3 tasks
Deathproof76 opened this issue May 16, 2024 · 41 comments
Open
1 of 3 tasks

Comments

@Deathproof76
Copy link

Deathproof76 commented May 16, 2024

The bug

Using the android mobile app from the playstore on a Samsung S23U: Since v1.105.0 I get weird errors where photos will get uploaded but not refreshed in the app. Tried to logout and in again via google oauth and mail/pw. But after relogin the timelime is building indefinitely.

I also tried direct ip in LAN. It somehow helps switching between Wifi and mobile Data. After doing that I'm able to see the remote photos and can upload photos but the gallery won't refresh and the backup cloud icon is crossed out*. The uploaded photos can be seen in the Webui though. I used a secondary android phone (some rooted xiaomi with a custom rom) to install v1.105.0 from github and compare with v1.104.0. due to #9495 (comment)

v1.104.0. works perfectly on the secondary phone but v1.105.0 shows the exact same issues as on the primary android phone.

*(after turning wifi off and waiting for mobile data, the "building timeline" vanishes and I can see photos but it seems to keep building in the background, down left "fotos" is still spinning)
d8349746-099b-4491-8151-5fcaefc1824b

update: I can access remote albums, which also show the correct backup status (only on server/on device and server) it seems to be mainly a problem with the timeline. I can search things and filter people/places.

Can't see any unusual in the docker logs, no warnings, errors, nothing:

[Nest] 171  - 05/16/2024, 3:42:58 PM     LOG [ImmichServer] [EventRepository] Websocket Connect:    E6ynr_a3d_NhrmPbAAAi
[Nest] 171  - 05/16/2024, 3:42:58 PM     LOG [ImmichServer] [EventRepository] Websocket Disconnect: E6ynr_a3d_NhrmPbAAAi
[Nest] 171  - 05/16/2024, 3:42:59 PM     LOG [ImmichServer] [EventRepository] Websocket Connect:    1-_EQHAJTMkWn8RpAAAk
[Nest] 171  - 05/16/2024, 3:42:59 PM     LOG [ImmichServer] [EventRepository] Websocket Connect:    RX_mGm_exUzRw-6IAAAm
[Nest] 171  - 05/16/2024, 3:43:31 PM     LOG [ImmichServer] [EventRepository] Websocket Disconnect: RX_mGm_exUzRw-6IAAAm
[Nest] 171  - 05/16/2024, 3:43:33 PM     LOG [ImmichServer] [EventRepository] Websocket Connect:    BmbhCQSv4hVrdZlfAAAo
[Nest] 171  - 05/16/2024, 3:43:39 PM     LOG [ImmichServer] [EventRepository] Websocket Disconnect: BmbhCQSv4hVrdZlfAAAo
[Nest] 171  - 05/16/2024, 3:43:39 PM     LOG [ImmichServer] [EventRepository] Websocket Disconnect: 1-_EQHAJTMkWn8RpAAAk
[Nest] 171  - 05/16/2024, 3:43:39 PM     LOG [ImmichServer] [EventRepository] Websocket Disconnect: uN7sAk-oJzB0tUGHAAAe
[Nest] 171  - 05/16/2024, 3:43:39 PM     LOG [ImmichServer] [EventRepository] Websocket Disconnect: PN-L07X6bTtW-oBNAAAg
[Nest] 171  - 05/16/2024, 4:47:53 PM     LOG [ImmichServer] [EventRepository] Websocket Disconnect: KK_9G-sHe9W1-O3CAAAF
[Nest] 171  - 05/16/2024, 5:01:15 PM     LOG [ImmichServer] [EventRepository] Websocket Connect:    h9UxaZ-tza0X7gN2AAAq
[Nest] 171  - 05/16/2024, 5:01:16 PM     LOG [ImmichServer] [EventRepository] Websocket Disconnect: h9UxaZ-tza0X7gN2AAAq
[Nest] 244  - 05/16/2024, 5:16:04 PM     LOG [ImmichMicroservices] [MediaService] Successfully generated WEBP image preview for asset 152589db-e996-4db3-a0b9-f0faf3b49be3
[05/16/24 17:16:04] INFO     Setting                                            
                             'XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b9
                             0k' execution providers to                         
                             ['CPUExecutionProvider'], in descending order of   
                             preference                                         
[05/16/24 17:16:04] INFO     Loading clip model                                 
                             'XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b9
                             0k' to memory                                      
[05/16/24 17:16:04] INFO     Setting 'buffalo_l' execution providers to         
                             ['CPUExecutionProvider'], in descending order of   
                             preference                                         
[Nest] 244  - 05/16/2024, 5:16:04 PM     LOG [ImmichMicroservices] [MediaService] Successfully generated WEBP image thumbnail for asset 152589db-e996-4db3-a0b9-f0faf3b49be3
[Nest] 244  - 05/16/2024, 5:16:05 PM     LOG [ImmichMicroservices] [MediaService] Successfully generated WEBP image preview for asset f2009d45-a27c-48d6-b9a0-073b73bbfb54
[Nest] 244  - 05/16/2024, 5:16:05 PM     LOG [ImmichMicroservices] [MediaService] Successfully generated WEBP image thumbnail for asset f2009d45-a27c-48d6-b9a0-073b73bbfb54
[05/16/24 17:16:08] INFO     Loading facial recognition model 'buffalo_l' to    
                             memory                                             

The mobile logs show Key 'currentUser' not found in Store, Error while getting remote assets | ApiException 401: {"message":"Invalid user token","error":"Unauthorized","statusCode":401} , PersonService | Error while fetching curated people | ApiException 400: Socket operation failed: GET /person (Inner exception: Failed host lookup: 'immich.mydomain.com')

The OS that Immich Server is running on

docker

Version of Immich Server

v1.105.1

Version of Immich Mobile App

v1.105.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

irrelevant

Your .env content

irrelevant

Reproduction steps

1. install apk v1.105.0
2. try to open or login
3. gallery won't refresh or stuck on timeline building

Relevant log output

2024-05-16 14:50:02.199042 | SEVERE   | ImmichErrorLogger    | PlatformDispatcher - Catch all | Key 'currentUser' not found in Store |
#0      Store.get (package:immich_mobile/entities/store.entity.dart:35)
#1      SyncService._syncRemoteAlbumsToDb (package:immich_mobile/services/sync.service.dart:297)
#2      SyncService.syncRemoteAlbumsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:66)
#3      new Future.sync (dart:async/future.dart:305)
#4      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:17)
#5      _RootZone.run (dart:async/zone.dart:1655)
#6      _FutureListener.handleWhenComplete (dart:async/future_impl.dart:205)
#7      Future._propagateToListeners.handleWhenCompleteCallback (dart:async/future_impl.dart:808)
#8      Future._propagateToListeners (dart:async/future_impl.dart:864)
#9      Future._completeWithValue (dart:async/future_impl.dart:643)
<asynchronous suspension>

2024-05-16 14:50:02.198689 | SEVERE   | AssetService         | Error while getting remote assets | ApiException 401: {"message":"Invalid user token","error":"Unauthorized","statusCode":401} |
#0      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:101)
<asynchronous suspension>
#1      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#2      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#3      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#4      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#5      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>

2024-05-16 13:54:33.162050 | SEVERE   | PersonService        | Error while fetching curated people | ApiException 400: Socket operation failed: GET /person (Inner exception: Failed host lookup: 'immich.mydomain.com')

#0      IOClient.send (package:http/src/io_client.dart:94)
<asynchronous suspension>
#1      BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
<asynchronous suspension>
#2      ApiClient.invokeAPI (package:openapi/api_client.dart:101)
<asynchronous suspension>
#3      PersonApi.getAllPeople (package:openapi/api/person_api.dart:103)
<asynchronous suspension>
#4      PersonService.getAllPeople (package:immich_mobile/services/person.service.dart:25)
<asynchronous suspension>
#5      getAllPeople (package:immich_mobile/providers/search/people.provider.dart:16)
<asynchronous suspension>
#6      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>
 |
#0      ApiClient.invokeAPI (package:openapi/api_client.dart:104)
<asynchronous suspension>
#1      PersonApi.getAllPeople (package:openapi/api/person_api.dart:103)
<asynchronous suspension>
#2      PersonService.getAllPeople (package:immich_mobile/services/person.service.dart:25)
<asynchronous suspension>
#3      getAllPeople (package:immich_mobile/providers/search/people.provider.dart:16)
<asynchronous suspension>
#4      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

2024-05-16 13:54:33.161549 | SEVERE   | SearchService        | Failed to getExploreData | ApiException 400: Socket operation failed: GET /search/explore (Inner exception: Failed host lookup: 'immich.mydomain.com')

#0      IOClient.send (package:http/src/io_client.dart:94)
<asynchronous suspension>
#1      BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
<asynchronous suspension>
#2      ApiClient.invokeAPI (package:openapi/api_client.dart:101)
<asynchronous suspension>
#3      SearchApi.getExploreData (package:openapi/api/search_api.dart:90)
<asynchronous suspension>
#4      SearchService.getExploreData (package:immich_mobile/services/search.service.dart:116)
<asynchronous suspension>
#5      getPreviewPlacesProvider.<anonymous closure> (package:immich_mobile/providers/search/search_page_state.provider.dart:10)
<asynchronous suspension>
#6      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>
 |
#0      ApiClient.invokeAPI (package:openapi/api_client.dart:104)
<asynchronous suspension>
#1      SearchApi.getExploreData (package:openapi/api/search_api.dart:90)
<asynchronous suspension>
#2      SearchService.getExploreData (package:immich_mobile/services/search.service.dart:116)
<asynchronous suspension>
#3      getPreviewPlacesProvider.<anonymous closure> (package:immich_mobile/providers/search/search_page_state.provider.dart:10)
<asynchronous suspension>
#4      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

Additional information

I'm using the https://github.com/imagegenius/docker-immich monolythic dockerimage with tensorchord/pgvecto-rs:pg16-v0.2.0

@alextran1502
Copy link
Contributor

The app will need to finish indexing/hashing all the assets on your device (spinning circle) to show them in the app properly

@Deathproof76
Copy link
Author

Deathproof76 commented May 16, 2024

After hours it does not seem to be moving along in any way, still spinning. Especially the second device wasn't used with immich before and I've only added one folder with 2 photos to backup. With v1.104.0. it does take less then a minute to be ready, but with v1.105.0. it looks awfully similar to #9018 #8023 #7498

The server has 128gb RAM, backed by a 13600k and all assets are on an nvme. 110000 assets total, my account about 45k. My wifes android phone 35k assets seems to work just fine. So the problem might be specific to my account.

edit: There are orphaned files in the repair section, which ironically all belong to my wifes problem-free account🤡
Just set logging on server to debug, restartet the phone. 20min later still spinning and nothing in the server logs.

mobile logs since phone reboot:

2024-05-16 22:20:16.335226 | FINE     | socket_io_client:engine.Socket | socket receive: type "ping", data "null" |
2024-05-16 22:20:14.051972 | INFO     | BackupNotifier       | _getBackupAlbumsInfo: Found 116 available albums |
2024-05-16 22:20:14.051164 | INFO     | BackupNotifier       | Found 116 local albums |
2024-05-16 22:20:13.822800 | INFO     | BackupNotifier       | [_resumeBackup] Start back up |
2024-05-16 22:19:59.098350 | INFO     | AlbumService         | refreshDeviceAlbums is already in progress |
2024-05-16 22:19:57.712441 | INFO     | AlbumService         | 'Recents' is not selected, keeping only selected albums |
2024-05-16 22:19:57.712207 | INFO     | AlbumService         | Found 116 device albums |
2024-05-16 22:19:51.465255 | FINE     | socket_io_client:engine.Socket | socket receive: type "message", data "2["on_new_release",{"isAvailable":0,"checkedAt":null,"serverVersion":{"major":1,"minor":105,"patch":1},"releaseVersion":{"major":1,"minor":105,"patch":1}}]" |
2024-05-16 22:19:51.464801 | FINE     | socket_io_client:engine.Socket | socket receive: type "message", data "2["on_server_version",{"major":1,"minor":105,"patch":1}]" |
2024-05-16 22:19:51.463840 | FINE     | socket_io_client:engine.Socket | socket receive: type "message", data "0{"sid":"ZPUcg7CURFJLkX9-AAAT"}" |
2024-05-16 22:19:51.369551 | FINE     | socket_io_client:engine.Socket | flushing 1 packets in socket |
2024-05-16 22:19:51.369539 | FINE     | socket_io:parser.Encoder | encoded {type: 0, data: null, nsp: /} as 0 |
2024-05-16 22:19:51.369512 | FINE     | socket_io:parser.Encoder | encoding packet {type: 0, data: null, nsp: /} |
2024-05-16 22:19:51.369505 | FINE     | socket_io_client:Manager | writing packet {type: 0, data: null, nsp: /} |
2024-05-16 22:19:51.369494 | FINE     | socket_io_client:Socket | transport is open - connecting |
2024-05-16 22:19:51.369470 | FINE     | socket_io_client:Manager | cleanup |
2024-05-16 22:19:51.369465 | FINE     | socket_io_client:Manager | open |
2024-05-16 22:19:51.369457 | FINE     | socket_io_client:engine.Socket | socket open |
2024-05-16 22:19:51.369363 | FINE     | socket_io_client:engine.Socket | socket receive: type "open", data "{"sid":"J-IV_m2iP1sftELUAAAS","upgrades":[],"pingInterval":25000,"pingTimeout":20000,"maxPayload":1000000}" |
2024-05-16 22:19:51.223360 | FINE     | socket_io_client:Manager | readyState opening |
2024-05-16 22:19:51.223331 | FINE     | socket_io_client:Manager | connect attempt will timeout after 20000 |
2024-05-16 22:19:51.223281 | FINE     | socket_io_client:engine.Socket | setting transport websocket |
2024-05-16 22:19:51.222974 | FINE     | socket_io_client:engine.Socket | creating transport "websocket" |
2024-05-16 22:19:51.222926 | FINE     | socket_io_client:Manager | opening https://immich.mydomain.com |
2024-05-16 22:19:51.222904 | FINE     | socket_io_client:Manager | readyState closed |
2024-05-16 22:19:51.222863 | FINE     | socket_io_client     | ignoring socket cache for https://immich.mydomain.com |
2024-05-16 22:19:51.121030 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-16 22:06:34.663443 | FINE     | socket_io:parser.Encoder | encoded {type: 2, data: [disconnecting, io client disconnect], options: {compress: false}, nsp: /} as 2["disconnecting","io client disconnect"] |
2024-05-16 22:06:34.663371 | FINE     | socket_io:parser.Encoder | encoding packet {type: 2, data: [disconnecting, io client disconnect], options: {compress: false}, nsp: /} |
2024-05-16 22:06:34.663311 | FINE     | socket_io_client:Manager | writing packet {type: 2, data: [disconnecting, io client disconnect], options: {compress: false}, nsp: /} |
2024-05-16 22:06:34.663031 | FINE     | socket_io_client:Socket | close (io client disconnect) |
2024-05-16 22:06:34.662975 | FINE     | socket_io_client:Manager | disconnect |
2024-05-16 22:06:34.662295 | FINE     | socket_io_client:engine.Socket | flushing 1 packets in socket |
2024-05-16 22:06:34.662260 | FINE     | socket_io:parser.Encoder | encoded {type: 1, nsp: /} as 1 |
2024-05-16 22:06:34.662226 | FINE     | socket_io:parser.Encoder | encoding packet {type: 1, nsp: /} |
2024-05-16 22:06:34.662183 | FINE     | socket_io_client:Manager | writing packet {type: 1, nsp: /} |
2024-05-16 22:06:34.662100 | FINE     | socket_io_client:Socket | performing disconnect (/) |
2024-05-16 22:06:31.603595 | INFO     | BackupNotifier       | _getBackupAlbumsInfo: Found 116 available albums |
2024-05-16 22:06:31.595575 | INFO     | BackupNotifier       | Found 116 local albums |
2024-05-16 22:06:31.534741 | FINE     | socket_io_client:engine.Socket | socket receive: type "message", data "2["on_new_release",{"isAvailable":0,"checkedAt":null,"serverVersion":{"major":1,"minor":105,"patch":1},"releaseVersion":{"major":1,"minor":105,"patch":1}}]" |
2024-05-16 22:06:31.534400 | FINE     | socket_io_client:engine.Socket | socket receive: type "message", data "2["on_server_version",{"major":1,"minor":105,"patch":1}]" |
2024-05-16 22:06:31.533646 | FINE     | socket_io_client:engine.Socket | socket receive: type "message", data "0{"sid":"_dH_CNUZRrwD9uChAAAN"}" |
2024-05-16 22:06:31.487149 | FINE     | socket_io_client:engine.Socket | flushing 1 packets in socket |
2024-05-16 22:06:31.487144 | FINE     | socket_io:parser.Encoder | encoded {type: 0, data: null, nsp: /} as 0 |
2024-05-16 22:06:31.487137 | FINE     | socket_io:parser.Encoder | encoding packet {type: 0, data: null, nsp: /} |
2024-05-16 22:06:31.487131 | FINE     | socket_io_client:Manager | writing packet {type: 0, data: null, nsp: /} |
2024-05-16 22:06:31.487122 | FINE     | socket_io_client:Socket | transport is open - connecting |
2024-05-16 22:06:31.487112 | FINE     | socket_io_client:Manager | cleanup |
2024-05-16 22:06:31.487106 | FINE     | socket_io_client:Manager | open |
2024-05-16 22:06:31.487098 | FINE     | socket_io_client:engine.Socket | socket open |
2024-05-16 22:06:31.487020 | FINE     | socket_io_client:engine.Socket | socket receive: type "open", data "{"sid":"p4gUF1EgU56gB8TeAAAM","upgrades":[],"pingInterval":25000,"pingTimeout":20000,"maxPayload":1000000}" |
2024-05-16 22:06:31.418864 | INFO     | BackupNotifier       | [_resumeBackup] Start back up |
2024-05-16 22:06:31.393117 | FINE     | socket_io_client:Manager | readyState opening |
2024-05-16 22:06:31.393027 | FINE     | socket_io_client:Manager | connect attempt will timeout after 20000 |
2024-05-16 22:06:31.393004 | FINE     | socket_io_client:engine.Socket | setting transport websocket |
2024-05-16 22:06:31.392912 | FINE     | socket_io_client:engine.Socket | creating transport "websocket" |
2024-05-16 22:06:31.392872 | FINE     | socket_io_client:Manager | opening https://immich.mydomain.com |
2024-05-16 22:06:31.392853 | FINE     | socket_io_client:Manager | readyState closed |
2024-05-16 22:06:31.392832 | FINE     | socket_io_client     | ignoring socket cache for https://immich.mydomain.com |
2024-05-16 22:01:43.033088 | INFO     | AssetNotifier        | Load assets: 959748ms |
2024-05-16 22:01:43.032864 | SEVERE   | ImmichErrorLogger    | PlatformDispatcher - Catch all | ApiException 502:  |
#0      AlbumApi.getAllAlbums (package:openapi/api/album_api.dart:373)
<asynchronous suspension>
#1      AlbumService.refreshRemoteAlbums (package:immich_mobile/services/album.service.dart:154)
<asynchronous suspension>
#2      Future.wait.<anonymous closure> (dart:async/future.dart:518)
<asynchronous suspension>

2024-05-16 22:01:43.032633 | INFO     | AlbumService         | Syncing completed. Changes: true |
2024-05-16 22:01:43.032594 | FINE     | SyncService          | 0 assets to delete, 0 to update |
2024-05-16 22:01:43.032548 | FINE     | SyncService          | Syncing all local albums almost done. Collected 0 asset candidates to delete |
2024-05-16 22:01:43.032441 | FINE     | SyncService          | Local album Facetune has not changed. Skipping sync. |
2024-05-16 22:01:43.024893 | FINE     | SyncService          | Local album GalaxyEnhance-X has not changed. Skipping sync. |
2024-05-16 22:01:43.018492 | FINE     | SyncService          | Local album Reddit has not changed. Skipping sync. |
2024-05-16 22:01:43.012065 | FINE     | SyncService          | Local album Snapseed has not changed. Skipping sync. |
2024-05-16 22:01:43.005736 | FINE     | SyncService          | Local album Snapshot has not changed. Skipping sync. |
2024-05-16 22:01:43.000069 | FINE     | SyncService          | Local album Instagram has not changed. Skipping sync. |
2024-05-16 22:01:42.993719 | FINE     | SyncService          | Local album DCIM has not changed. Skipping sync. |
2024-05-16 22:01:42.985919 | FINE     | SyncService          | Local album WhatsApp Images has not changed. Skipping sync. |
2024-05-16 22:01:42.941018 | FINE     | SyncService          | Local album Camera has not changed. Skipping sync. |
2024-05-16 22:01:42.815083 | FINE     | SyncService          | Local album Pictures has not changed. Skipping sync. |
2024-05-16 22:01:42.804531 | FINE     | SyncService          | Local album WhatsApp Video has not changed. Skipping sync. |
2024-05-16 22:01:42.789326 | INFO     | SyncService          | Fast synced local album Screenshots to DB |
2024-05-16 22:01:42.783407 | FINE     | HashService          | Hashed 1/1 assets |
2024-05-16 22:01:36.073916 | INFO     | AlbumService         | refreshDeviceAlbums is already in progress |
2024-05-16 22:01:36.072353 | SEVERE   | AssetService         | Error while getting remote assets | ApiException 502:  |
#0      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:101)
<asynchronous suspension>
#1      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#2      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#3      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#4      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#5      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>

full mobile log
Immich_log_2024-05-16T22_24_12.149723.log

@Deathproof76 Deathproof76 changed the title Since apk v1.105.0 "message":"Invalid user token","error":"Unauthorized","statusCode":401 - login/upload possible but gallery won't refresh Since apk v1.105.0 login/upload possible but gallery won't refresh, keeps spinning May 16, 2024
@Deathproof76 Deathproof76 changed the title Since apk v1.105.0 login/upload possible but gallery won't refresh, keeps spinning Since apk v1.105.0 login/upload possible but timeline won't refresh, keeps spinning May 16, 2024
@wardwygaerts
Copy link

I think I have the same issue.
In the past all my photo's were visible in the app immediately. Now it only loads them till 2021 (and there are pictures from 2007...). The circle next photos keeps turning, but no additional pictures appear.
I have 62500 assets in my account and on the web everything is fine.

@Deathproof76
Copy link
Author

Deathproof76 commented May 17, 2024

I have to correct myself when I said "v1.104.0. works perfectly on the secondary phone". It may actually finish indexing/hashing but only photos up until april are shown in the timeline. No problems in the webui. So it's likely that it's not just contained to the mobile app but in combination with the server. I will test downgrading server and app, when I can, to see if it works when both are on an older release.
Did full vacuum and analyze of the db which helped nothing, but at least didn't show any grave issues with the db.

@justin13888
Copy link

I'm on Android and I upgraded my server and mobile app version yesterday. Couldn't replicate this though but wondering if you tried clearing your mobile app's cache (in phone settings)?

@wardwygaerts
Copy link

wardwygaerts commented May 17, 2024

I already tried it, but it only clears the thumbnails and not the amount of assets downloaded.

Error in the logs:

ApiException 400: HTTP connection failed: POST /sync/full-sync (Inner exception: Connection closed before full header was received)

#0      IOClient.send (package:http/src/io_client.dart:96)
<asynchronous suspension>
#1      BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
<asynchronous suspension>
#2      ApiClient.invokeAPI (package:openapi/api_client.dart:96)
<asynchronous suspension>
#3      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:99)
<asynchronous suspension>
#4      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#5      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#6      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#7      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#8      AssetService.refreshRemoteAssets (package:immich_mobile/services/asset.service.dart:55)
<asynchronous suspension>
#9      AssetNotifier.getAllAsset (package:immich_mobile/providers/asset.provider.dart:54)
<asynchronous suspension>

@Deathproof76
Copy link
Author

Deathproof76 commented May 18, 2024

Same here. As I said, still confused that my wifes account/mobile app (also android/Samsung on latest Oneui) works/syncs without a problem. Which seems to narrow the bug down to being account specific.
Screenshot_20240518_101450

@wardwygaerts did you use https://github.com/vale46n1/immich_duplicate_finder by any chance? I've tried it a week and a half before running into this, even though everything seemed fine until now. It's the only thing I can think about regarding differences between my admin account and the one my wife uses. Even though it should just analyze the photos and delete them via api request.

update: used my secondary phone to log in to my wifes and also my mothers account and then back to my account. Their accounts sync without a hitch, only mine doesn't:

2024-05-18 12:47:45.604081 | SEVERE   | ImmichErrorLogger    | PlatformDispatcher - Catch all | ApiException 400: Socket operation failed: GET /album/00813ea5-6b8b-421b-b89b-2ab439cb659c (Inner exception: Failed host lookup: 'immich.**************.com')

#0      IOClient.send (package:http/src/io_client.dart:94)
<asynchronous suspension>
#1      BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
<asynchronous suspension>
#2      ApiClient.invokeAPI (package:openapi/api_client.dart:101)
<asynchronous suspension>
#3      AlbumApi.getAlbumInfo (package:openapi/api/album_api.dart:311)
<asynchronous suspension>
#4      AlbumService.refreshRemoteAlbums.<anonymous closure> (package:immich_mobile/services/album.service.dart:164)
<asynchronous suspension>
#5      SyncService._addAlbumFromServer (package:immich_mobile/services/sync.service.dart:436)
<asynchronous suspension>
#6      diffSortedLists (package:immich_mobile/utils/diff.dart:30)
<asynchronous suspension>
#7      SyncService._syncRemoteAlbumsToDb (package:immich_mobile/services/sync.service.dart:306)
<asynchronous suspension>
#8      AlbumService.refreshRemoteAlbums (package:immich_mobile/services/album.service.dart:159)
<asynchronous suspension>
#9      Future.wait.<anonymous closure> (dart:async/future.dart:518)
<asynchronous suspension>
 |
#0      ApiClient.invokeAPI (package:openapi/api_client.dart:104)
<asynchronous suspension>
#1      AlbumApi.getAlbumInfo (package:openapi/api/album_api.dart:311)
<asynchronous suspension>
#2      AlbumService.refreshRemoteAlbums.<anonymous closure> (package:immich_mobile/services/album.service.dart:164)
<asynchronous suspension>
#3      SyncService._addAlbumFromServer (package:immich_mobile/services/sync.service.dart:436)
<asynchronous suspension>
#4      diffSortedLists (package:immich_mobile/utils/diff.dart:30)
<asynchronous suspension>
#5      SyncService._syncRemoteAlbumsToDb (package:immich_mobile/services/sync.service.dart:306)
<asynchronous suspension>
#6      AlbumService.refreshRemoteAlbums (package:immich_mobile/services/album.service.dart:159)
<asynchronous suspension>
#7      Future.wait.<anonymous closure> (dart:async/future.dart:518)
<asynchronous suspension>

2024-05-18 12:47:45.387893 | INFO     | AssetNotifier        | Load assets: 50724ms |
2024-05-18 12:47:45.378575 | SEVERE   | AssetService         | Error while getting remote assets | ApiException 400: HTTP connection failed: POST /sync/full-sync (Inner exception: Software caused connection abort)

#0      IOClient.send (package:http/src/io_client.dart:96)
<asynchronous suspension>
#1      BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
<asynchronous suspension>
#2      ApiClient.invokeAPI (package:openapi/api_client.dart:96)
<asynchronous suspension>
#3      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:99)
<asynchronous suspension>
#4      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#5      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#6      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#7      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#8      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>
 |
#0      ApiClient.invokeAPI (package:openapi/api_client.dart:125)
<asynchronous suspension>
#1      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:99)
<asynchronous suspension>
#2      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#3      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#4      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#5      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#6      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>

2024-05-18 12:46:54.564413 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:46:11.361466 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:42:51.320504 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:42:47.181308 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:42:39.805081 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:42:29.045126 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:42:27.980490 | INFO     | AuthenticationNotifier | Logout was successful for a**************@gmail.com |
2024-05-18 12:41:04.614573 | INFO     | AssetNotifier        | Load assets: 4299ms |
2024-05-18 12:41:04.604285 | INFO     | SyncService          | Upserted 15409 assets into the DB |
2024-05-18 12:41:00.175413 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:40:48.096697 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:40:30.843974 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:40:15.736006 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:40:11.645644 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:39:30.799694 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:39:29.294631 | INFO     | AuthenticationNotifier | Logout was successful for k***************@gmail.com |
2024-05-18 12:39:09.021752 | INFO     | SyncService          | Synced changes of remote album xmas 23 to DB |
2024-05-18 12:39:08.982685 | INFO     | AssetNotifier        | Load assets: 235ms |
2024-05-18 12:39:08.592249 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:38:26.453083 | INFO     | BackupNotifier       | No assets are selected for back up |
2024-05-18 12:38:26.402385 | INFO     | BackupNotifier       | _getBackupAlbumsInfo: Found 2 available albums |
2024-05-18 12:38:26.401336 | INFO     | BackupNotifier       | Found 2 local albums |
2024-05-18 12:37:55.426576 | INFO     | SyncService          | Upserted 2 assets into the DB |
2024-05-18 12:37:55.384052 | INFO     | AssetNotifier        | Load assets: 10073ms |
2024-05-18 12:37:55.365990 | INFO     | SyncService          | Upserted 35575 assets into the DB |
2024-05-18 12:37:45.147704 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:37:34.934560 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-18 12:34:25.115294 | INFO     | ApiService           | Pinging server with response code 200 |

@alextran1502
Copy link
Contributor

@Deathproof76 can you check the server log to see if there is error when you sync your account?

@Deathproof76
Copy link
Author

Deathproof76 commented May 18, 2024

@alextran1502 doesn't look like it. The logs show the exact time my Account logged in:

Screenshot_20240518_181910_AndroTainer

Edit: I just came back home, connected to my Wi-Fi and immich uploaded the screenshot I made for you. It's visible in the web ui, but the mobile app keeps spinning and doesn't refresh 🤷

@alextran1502
Copy link
Contributor

@Deathproof76 And it works fine on 1.104 APK?

@Deathproof76
Copy link
Author

@Deathproof76 And it works fine on 1.104 APK?

Well, yes and no. The syncing on my backup phone seems to finish on 1.104 without errors (no spinning or refresh problem), but the timeline stops last Month. I can only see photos up until April. Similar to @wardwygaerts

@alextran1502
Copy link
Contributor

@Deathproof76 Thank you, let me look at the stack trace to see what can be the potential issue

@alextran1502
Copy link
Contributor

@Deathproof76 Can you try accessing your instance over local IP on your account?

@Deathproof76
Copy link
Author

Deathproof76 commented May 18, 2024

@Deathproof76 Can you try accessing your instance over local IP on your account?

@alextran1502 same problem. This is a log from just now. I logged in using the local IP (20:58:07) -> waited for a few minutes > still building timeline, won't go away for hours -> I then turned off WiFi -> the connection switches to mobile data (21:06:22) -> I'm able to see all photos-> but can't refresh them -> if I'd take a photo and turn wifi on, it wouldn't be added to the timeline (on mobile app), but still uploaded to the server and be visible in webui.

Immich_log_2024-05-18T21_06_36.072048.log

@wardwygaerts
Copy link

I also tested with my local ip, but even less assets are loaded.
New pictures are still uploaded from my phone to the server without issues.

@wardwygaerts
Copy link

I just uninstalled v1.105 and reinstalled v1.104. The timeline was completely build after 15seconds.
Also tried again with v1.105, but same issue. I stay on v1.104 for now.

@alextran1502
Copy link
Contributor

@wardwygaerts what is your server version?

@wardwygaerts
Copy link

@wardwygaerts what is your server version?

1.105.1

@vfr456
Copy link

vfr456 commented May 22, 2024

I meet this issue too. You need to pull down refresh, then the sync state on photos will become ok .

Android App version: 1.105.0 build.139
Server Version: 1.105.1

@Deathproof76
Copy link
Author

Deathproof76 commented May 22, 2024

@alextran1502 I downgraded the server to v1.104.0 and everything works with apk v1.104.0 on my secondary phone (No errors in logs, indexing/caching/refreshing working, all photos visible in timeline). Also tried with apk v1.105.0 and server v1.104.0 which sadly shows the same errors as apk v1.105.0 with server v1.105.1.

server v1.104.0 and apk v1.105.0 logs:

2024-05-23 00:33:59.106643 | SEVERE   | ImmichErrorLogger    | PlatformDispatcher - Catch all | Key 'currentUser' not found in Store |
#0      Store.get (package:immich_mobile/entities/store.entity.dart:35)
#1      SyncService._syncRemoteAlbumsToDb (package:immich_mobile/services/sync.service.dart:297)
#2      SyncService.syncRemoteAlbumsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:66)
#3      new Future.sync (dart:async/future.dart:305)
#4      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:17)
#5      _RootZone.run (dart:async/zone.dart:1655)
#6      _FutureListener.handleWhenComplete (dart:async/future_impl.dart:205)
#7      Future._propagateToListeners.handleWhenCompleteCallback (dart:async/future_impl.dart:808)
#8      Future._propagateToListeners (dart:async/future_impl.dart:864)
#9      Future._completeWithValue (dart:async/future_impl.dart:643)
<asynchronous suspension>

2024-05-23 00:33:59.104956 | INFO     | AssetNotifier        | Load assets: 43447ms |
2024-05-23 00:33:59.104734 | INFO     | AlbumService         | Syncing completed. Changes: false |
2024-05-23 00:33:59.104700 | FINE     | SyncService          | 0 assets to delete, 0 to update |
2024-05-23 00:33:59.104627 | FINE     | SyncService          | Syncing all local albums almost done. Collected 0 asset candidates to delete |
2024-05-23 00:33:59.103973 | INFO     | AlbumService         | refreshDeviceAlbums is already in progress |
2024-05-23 00:33:59.103723 | SEVERE   | AssetService         | Error while getting remote assets | ApiException 401: {"message":"Invalid user token","error":"Unauthorized","statusCode":401} |
#0      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:101)
<asynchronous suspension>
#1      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#2      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#3      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#4      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#5      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>

what I understand so far: It's a user specific problem (my other users work without a problem on v1.105.0) and it definitely happened between v1.104.0 and v1.105.0 for both apk and server.

server v1.104.0 and apk v1.104.0 logs:

2024-05-23 00:31:16.246604 | INFO     | AssetNotifier        | Load assets: 147ms |
2024-05-23 00:31:16.241473 | INFO     | AssetNotifier        | Load partner assets: 281ms |
2024-05-23 00:30:44.395962 | INFO     | SyncService          | Upserted 28 assets into the DB |
2024-05-23 00:30:43.181089 | INFO     | SyncService          | Upserted 23 assets into the DB |
2024-05-23 00:30:42.957408 | INFO     | SyncService          | Upserted 10 assets into the DB |
2024-05-23 00:30:41.984955 | INFO     | SyncService          | Upserted 2 assets into the DB |
2024-05-23 00:30:41.912367 | INFO     | SyncService          | Upserted 13 assets into the DB |
2024-05-23 00:30:41.271662 | INFO     | SyncService          | Upserted 241 assets into the DB |
2024-05-23 00:30:40.247343 | INFO     | SyncService          | Upserted 60 assets into the DB |
2024-05-23 00:30:40.108896 | INFO     | SyncService          | Upserted 39 assets into the DB |
2024-05-23 00:30:39.125883 | INFO     | SyncService          | Upserted 597 assets into the DB |
2024-05-23 00:30:38.445827 | INFO     | SyncService          | Upserted 6 assets into the DB |
2024-05-23 00:30:37.716907 | INFO     | SyncService          | Upserted 413 assets into the DB |
2024-05-23 00:30:36.682918 | INFO     | SyncService          | Upserted 16 assets into the DB |
2024-05-23 00:30:36.623191 | INFO     | SyncService          | Upserted 6 assets into the DB |
2024-05-23 00:30:35.047184 | INFO     | SyncService          | Upserted 203 assets into the DB |
2024-05-23 00:30:33.723776 | INFO     | SyncService          | Upserted 315 assets into the DB |
2024-05-23 00:30:32.931906 | INFO     | SyncService          | Upserted 257 assets into the DB |
2024-05-23 00:30:32.293886 | INFO     | SyncService          | Upserted 179 assets into the DB |
2024-05-23 00:30:31.638597 | INFO     | SyncService          | Upserted 91 assets into the DB |
2024-05-23 00:30:29.958754 | INFO     | SyncService          | Upserted 1047 assets into the DB |
2024-05-23 00:30:28.747342 | INFO     | SyncService          | Upserted 38 assets into the DB |
2024-05-23 00:30:27.817792 | INFO     | SyncService          | Upserted 42 assets into the DB |
2024-05-23 00:30:26.521455 | INFO     | SyncService          | Upserted 6 assets into the DB |
2024-05-23 00:30:25.852739 | INFO     | SyncService          | Upserted 3 assets into the DB |
2024-05-23 00:30:25.675704 | INFO     | SyncService          | Upserted 6 assets into the DB |
2024-05-23 00:30:24.503972 | INFO     | SyncService          | Upserted 531 assets into the DB |
2024-05-23 00:30:23.422837 | INFO     | SyncService          | Upserted 3 assets into the DB |
2024-05-23 00:30:23.370103 | INFO     | SyncService          | Upserted 5 assets into the DB |
2024-05-23 00:30:22.837367 | INFO     | SyncService          | Upserted 40 assets into the DB |
2024-05-23 00:30:22.278149 | INFO     | SyncService          | Upserted 75 assets into the DB |
2024-05-23 00:30:21.656460 | INFO     | SyncService          | Upserted 189 assets into the DB |
2024-05-23 00:30:21.095073 | INFO     | SyncService          | Upserted 34 assets into the DB |
2024-05-23 00:30:19.715731 | INFO     | SyncService          | Upserted 561 assets into the DB |
2024-05-23 00:30:18.753212 | INFO     | SyncService          | Upserted 19 assets into the DB |
2024-05-23 00:30:18.067559 | INFO     | SyncService          | Upserted 32 assets into the DB |
2024-05-23 00:30:17.452421 | INFO     | SyncService          | Upserted 82 assets into the DB |
2024-05-23 00:30:16.874727 | INFO     | SyncService          | Upserted 162 assets into the DB |
2024-05-23 00:30:15.887762 | INFO     | SyncService          | Upserted 29 assets into the DB |
2024-05-23 00:30:15.345906 | INFO     | SyncService          | Upserted 14 assets into the DB |
2024-05-23 00:30:15.215961 | INFO     | SyncService          | Upserted 1 assets into the DB |
2024-05-23 00:30:13.218978 | INFO     | SyncService          | Upserted 1018 assets into the DB |
2024-05-23 00:30:11.835806 | INFO     | SyncService          | Upserted 4 assets into the DB |
2024-05-23 00:30:11.059433 | INFO     | SyncService          | Upserted 126 assets into the DB |
2024-05-23 00:30:10.086015 | INFO     | SyncService          | Upserted 14 assets into the DB |
2024-05-23 00:30:09.996579 | INFO     | AssetNotifier        | Load partner assets: 12947ms |
2024-05-23 00:30:09.995200 | INFO     | AssetNotifier        | Load assets: 12919ms |
2024-05-23 00:30:09.975736 | INFO     | SyncService          | Upserted 46595 assets into the DB |
2024-05-23 00:29:53.533564 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-23 00:29:51.981107 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-23 00:29:53.533564 | INFO     | ApiService           | Pinging server with response code 200 |
2024-05-23 00:29:51.981107 | INFO     | ApiService           | Pinging server with response code 200 |

@Deathproof76
Copy link
Author

@alextran1502 sorry to bother you, but do you have any guidance on how I could debug this further? Or maybe a workaround? Maybe like creating a new account and migrating the assets/created and shared albums to the new account via db queries?

I mean with errors like:

ApiException 401: {"message":"Invalid user token","error":"Unauthorized","statusCode":401} 

and

Key 'currentUser' not found in Store

Isn't there a way to find out what is wrong with the user token? Maybe what it should look like and a way to modify it? (I don't know if it even is part of the problem and not just a red herring)

I would love to be able to use immich on my phone again. If there's anything I can do, I'd be glad if you could tell me.

@wardwygaerts
Copy link

wardwygaerts commented May 29, 2024

@Deathproof76 Did you try with the previous mobile version? For me it works with app v1.104.0
As soon as I install the latest one, it's broken again. Server version is on v1.105.1
I know this is not perfect, but at least I can use Immich.

@Deathproof76
Copy link
Author

@Deathproof76 Did you try with the previous mobile version? For me it works with app v1.104.0 As soon as I install the latest one, it's broken again. Server version is on v1.105.1 I know this is not perfect, but at least I can use Immich.

Yeah, it works on my main phone when installing the v1.104.0 apk from github.

But the problem is that all the already backed up photos in the selected backup albums will be re-uploaded again, creating duplicates due to #9495 (comment) as I've been using the playstore version.

I'd have to create new albums and/or clear the old ones. And there's no guarantee that the next version e.g. v1.106.0 won't have the same problem. Even if it works, I'd have to duplicate and reclear the albums again for not having duplicate photos in the account.

@wardwygaerts
Copy link

But the problem is that all the already backed up photos in the selected backup albums will be re-uploaded again, creating duplicates due to #9495 (comment) as I've been using the playstore version.

I also switched from the PlayStore version to the GitHub apk. The backup indeed started from scratch, but I don't have duplicates.

@Deathproof76
Copy link
Author

you're right. It works just as you said 😄👍

@xs2usun
Copy link

xs2usun commented May 31, 2024

Same problems over here with Play store version 1.105. Downgrading to 1.104 worked! 👍

@Deathproof76
Copy link
Author

Really good to know that this problem affects more than two people 👀. Makes it much more likely of it being a "true" bug and not just some isolated incident related to rare user specific shenanigans.

@xs2usun you don't happen to have any logs from v1.105?

@xs2usun
Copy link

xs2usun commented May 31, 2024

Unfortunately I have not. I searched Google with the following error in the log of 1.105:

ApiException 400: HTTP connection failed: POST /sync/full-sync (Inner exception: Software caused connection abort)

That led me to this bug and the solution. I have similar problems with the iOS app, but I can't downgrade on iOS.

@alextran1502
Copy link
Contributor

@xs2usun is your server on 1.105 as well?

@Deathproof76
Copy link
Author

Unfortunately I have not. I searched Google with the following error in the log of 1.105:

ApiException 400: HTTP connection failed: POST /sync/full-sync (Inner exception: Software caused connection abort)

That led me to this bug and the solution. I have similar problems with the iOS app, but I can't downgrade on iOS.

Ah, this part then:

2024-05-18 21:06:22.507417 | SEVERE   | AssetService         | Error while getting remote assets | ApiException 400: HTTP connection failed: POST /sync/full-sync (Inner exception: Software caused connection abort)

#0      IOClient.send (package:http/src/io_client.dart:96)
<asynchronous suspension>
#1      BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
<asynchronous suspension>
#2      ApiClient.invokeAPI (package:openapi/api_client.dart:96)
<asynchronous suspension>
#3      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:99)
<asynchronous suspension>
#4      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#5      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#6      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#7      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#8      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>
 |
#0      ApiClient.invokeAPI (package:openapi/api_client.dart:125)
<asynchronous suspension>
#1      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:99)
<asynchronous suspension>
#2      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#3      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#4      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#5      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#6      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>

@jarelllama
Copy link

Really good to know that this problem affects more than two people 👀. Makes it much more likely of it being a "true" bug and not just some isolated incident related to rare user specific shenanigans.

Definitely not the only one. Been having this issue for a while now too.

Details:

ApiException 400: HTTP connection failed: POST /sync/full-sync (Inner exception: Broken pipe)

#0      IOClient.send (package:http/src/io_client.dart:96)
<asynchronous suspension>
#1      BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
<asynchronous suspension>
#2      ApiClient.invokeAPI (package:openapi/api_client.dart:96)
<asynchronous suspension>
#3      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:99)
<asynchronous suspension>
#4      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#5      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#6      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#7      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#8      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>

Stack trace:

#0      ApiClient.invokeAPI (package:openapi/api_client.dart:125)
<asynchronous suspension>
#1      SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:99)
<asynchronous suspension>
#2      AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:116)
<asynchronous suspension>
#3      SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:241)
<asynchronous suspension>
#4      SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:231)
<asynchronous suspension>
#5      SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:56)
<asynchronous suspension>
#6      AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>

@alextran1502
Copy link
Contributor

@fyfrey Hi Fynn, do you have any pointer that I should look into regarding this bug? I can't seem to find a way to reproduce it. Ever

@fyfrey
Copy link
Contributor

fyfrey commented Jun 1, 2024

I think there are two different issues mentioned here

  1. the invalid user token. Maybe we changed something about in login process in 105 compared to 104?

  2. The connection abort during full sync. We'd need to find out what these dart library error messages mean (maybe timeout, maybe something else...). Next, we'd need to add logging for this to the server (if it's not already included in the most verbose setting). I have no idea how to replicate the issue, though.

@alextran1502
Copy link
Contributor

For all of the users in this thread, are you guys connecting to your instance over dns/reverse proxy?

@Deathproof76
Copy link
Author

Deathproof76 commented Jun 1, 2024

For all of the users in this thread, are you guys connecting to your instance over dns/reverse proxy?

#9534 (comment) I tried direct and via caddy to the same effect. And as I said the weirdest part is, that other accounts using the same instance, like if I log in using my wifes account with my phone on 1.105 for server and apk, work without a problem.

@wardwygaerts
Copy link

By default, I connect via reverse proxy (traefik), but also tried it locally.

@fyfrey
Copy link
Contributor

fyfrey commented Jun 1, 2024

Do all affected accounts use the stacking feature extensively?

@xs2usun
Copy link

xs2usun commented Jun 1, 2024

@xs2usun is your server on 1.105 as well?

My server is 1.105.1. It runs as a docker container in Unraid.
On iOS the app build version is 1.105.0 build 157.
I connect through reverse proxy, but it behaves the same when I log in with local IP.

@xs2usun
Copy link

xs2usun commented Jun 1, 2024

I've attached 3 logfiles. Timeline works on 1.104. But on 1.105 the timeline never gets updated past March 10.

  • log from downgraded apk 1.104 (Android)
  • log from update to apk 1.105 (Android, same phone]
  • log from first install on iOS v1.105 (iPhone from work)

Android_1_104_0_build_2138_Immich_log_2024-06-01T12_29_27.445240.log
Android_1_105_1_build_2140_Immich_log_2024-06-01T12_40_10.861107.log
iOS_iPhone_first_install_ever_1_105_0_build_157_Immich_log_2024-06-01T124144.647786.log

@xs2usun
Copy link

xs2usun commented Jun 1, 2024

I deinstalled v1.105 on my Android phone and installed v1.104 apk. Timeline is fine again.

@Deathproof76
Copy link
Author

Do all affected accounts use the stacking feature extensively?

To be honest I don't even know how to do that or search for stacks in immich. Does it happen automatically? Like if I'd set my phone to output raw and heic/jpeg at the same time when shooting a photo, the uploaded files will be part of a stack? If that's the case than no. If it's something that one would have to do manually then also no.

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

No branches or pull requests

8 participants