Your App Major version is not compatible with this server #29051
-
I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
The bugWhen I connect to my YunoHost server with the F-Droid app, I get this message: "Your App Major version is not compatible with this server". Bug type: Usability What I expect is to click the message or a link below saying "view compatibility" That takes me to a page showing all of these (1) this app - which servers are compatible That should be in the documentation somewhere. I expected to find this in the changelog but did not. The OS that Immich Server is running onDebian 12 Version of Immich Serverv2.7.5 Version of Immich Mobile Appv2.7.5 Platform with the issue
Device make and modelSamsung Galaxy A12 Your docker-compose.yml contentyunohostYour .env contentyunohostReproduction steps
Relevant log output2026-06-13 12:25:18.091925 | severe | AuthService | Error logging out | ApiException 405: <html>
<head><title>405 Not Allowed</title></head>
<body>
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx</center>
</body>
</html>
|
#0 AuthenticationApi.logout (package:openapi/api/authentication_api.dart:415)
<asynchronous suspension>
#1 Future.timeout.<anonymous closure> (dart:async/future_impl.dart:1061)
<asynchronous suspension>
#2 AuthApiRepository.logout (package:immich_mobile/repositories/auth_api.repository.dart:30)
<asynchronous suspension>
#3 AuthService.logout (package:immich_mobile/services/auth.service.dart:98)
<asynchronous suspension>
#4 AuthNotifier.logout (package:immich_mobile/providers/auth.provider.dart:92)
<asynchronous suspension>
2026-06-13 12:25:16.645514 | severe | SplashScreenPage | Missing crucial offline login info - Logging out completely |
2026-06-13 12:03:53.286669 | info | HashService | Hashing took - 1ms |
2026-06-13 12:03:53.285125 | info | HashService | Starting hashing of assets |
2026-06-13 12:03:51.254738 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | FormatException: Unexpected character (at character 1)
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
^
|
#0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1467)
#1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1333)
#2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:935)
#3 _parseJson (dart:convert-patch/convert_patch.dart:35)
#4 JsonDecoder.convert (dart:convert/json.dart:641)
#5 JsonCodec.decode (dart:convert/json.dart:223)
#6 ApiClient.deserialize.<anonymous closure> (package:openapi/api_client.dart:158)
#7 compute.<anonymous closure> (package:flutter/src/foundation/_isolates_io.dart:23)
#8 _RemoteRunner._run (dart:isolate:1116)
#9 _RemoteRunner._remoteExecute (dart:isolate:1110)
#10 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:317)
#11 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193)
2026-06-13 12:03:50.517736 | info | DeviceSyncService | Device sync took - 141ms |
2026-06-13 12:03:50.517260 | info | DeviceSyncService | Full device sync took - 141ms |
2026-06-13 12:03:50.361216 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:59:13.211005 | info | BackgroundWorkerBgService | Android background processing completed in 6s |
2026-06-13 11:59:13.210744 | warning | BackgroundWorkerBgService | Remote sync did not complete successfully, skipping backup |
2026-06-13 11:59:11.207079 | info | HashService | Hashing took - 3ms |
2026-06-13 11:59:11.203497 | info | HashService | Starting hashing of assets |
2026-06-13 11:59:09.167486 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | FormatException: Unexpected character (at character 1)
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
^
|
#0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1467)
#1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1333)
#2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:935)
#3 _parseJson (dart:convert-patch/convert_patch.dart:35)
#4 JsonDecoder.convert (dart:convert/json.dart:641)
#5 JsonCodec.decode (dart:convert/json.dart:223)
#6 ApiClient.deserialize.<anonymous closure> (package:openapi/api_client.dart:158)
#7 compute.<anonymous closure> (package:flutter/src/foundation/_isolates_io.dart:23)
#8 _RemoteRunner._run (dart:isolate:1116)
#9 _RemoteRunner._remoteExecute (dart:isolate:1110)
#10 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:317)
#11 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193)
2026-06-13 11:59:08.867131 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:59:06.828693 | info | DeviceSyncService | Device sync took - 159ms |
2026-06-13 11:59:06.622416 | info | BackgroundWorkerBgService | Android background processing started |
2026-06-13 11:58:26.986491 | info | HashService | Hashing took - 2ms |
2026-06-13 11:58:26.983993 | info | HashService | Starting hashing of assets |
2026-06-13 11:58:24.948807 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | FormatException: Unexpected character (at character 1)
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
^
|
#0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1467)
#1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1333)
#2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:935)
#3 _parseJson (dart:convert-patch/convert_patch.dart:35)
#4 JsonDecoder.convert (dart:convert/json.dart:641)
#5 JsonCodec.decode (dart:convert/json.dart:223)
#6 ApiClient.deserialize.<anonymous closure> (package:openapi/api_client.dart:158)
#7 compute.<anonymous closure> (package:flutter/src/foundation/_isolates_io.dart:23)
#8 _RemoteRunner._run (dart:isolate:1116)
#9 _RemoteRunner._remoteExecute (dart:isolate:1110)
#10 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:317)
#11 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193)
2026-06-13 11:58:24.229500 | info | DeviceSyncService | Device sync took - 64ms |
2026-06-13 11:58:24.229249 | info | DeviceSyncService | Full device sync took - 64ms |
2026-06-13 11:58:24.163007 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:55:42.153653 | info | HashService | Hashing took - 1ms |
2026-06-13 11:55:42.152227 | info | HashService | Starting hashing of assets |
2026-06-13 11:55:40.124038 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | FormatException: Unexpected character (at character 1)
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
^
|
#0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1467)
#1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1333)
#2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:935)
#3 _parseJson (dart:convert-patch/convert_patch.dart:35)
#4 JsonDecoder.convert (dart:convert/json.dart:641)
#5 JsonCodec.decode (dart:convert/json.dart:223)
#6 ApiClient.deserialize.<anonymous closure> (package:openapi/api_client.dart:158)
#7 compute.<anonymous closure> (package:flutter/src/foundation/_isolates_io.dart:23)
#8 _RemoteRunner._run (dart:isolate:1116)
#9 _RemoteRunner._remoteExecute (dart:isolate:1110)
#10 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:317)
#11 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193)
2026-06-13 11:55:39.940484 | info | DeviceSyncService | Device sync took - 47ms |
2026-06-13 11:55:39.940134 | info | DeviceSyncService | Full device sync took - 47ms |
2026-06-13 11:55:39.902525 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:55:01.905225 | info | HashService | Hashing took - 2ms |
2026-06-13 11:55:01.902414 | info | HashService | Starting hashing of assets |
2026-06-13 11:54:59.869021 | info | DeviceSyncService | Device sync took - 88ms |
2026-06-13 11:54:59.868503 | info | DeviceSyncService | Full device sync took - 87ms |
2026-06-13 11:54:59.808562 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | ApiException 400: Exception occurred: GET /server/version (Inner exception: Exception in Java code called through JNI: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
at okhttp3.HttpUrl$Builder.parse$okhttp(Unknown Source:665)
at okhttp3.HttpUrl$Companion.get(SourceFile:1)
at okhttp3.Request$Builder.url(SourceFile:6)
)
#0 Jni.throwException (package:jni/src/jni.dart:196)
#1 _check (package:jni/src/accessors.dart:17)
#2 JniResultMethods.check (package:jni/src/accessors.dart:23)
#3 JniResultMethods.objectPointer (package:jni/src/accessors.dart:61)
#4 JniResultMethods.reference (package:jni/src/accessors.dart:71)
#5 JniResultMethods.object (package:jni/src/accessors.dart:76)
#6 Request$Builder.url$1 (package:ok_http/src/jni/bindings.dart:162)
#7 OkHttpClient.send (package:ok_http/src/ok_http_client.dart:459)
#8 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#9 BaseClient.get (package:http/src/base_client.dart:27)
#10 ApiClient.invokeAPI (package:openapi/api_client.dart:101)
<asynchronous suspension>
#11 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#12 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#13 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#14 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#15 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
|
#0 ApiClient.invokeAPI (package:openapi/api_client.dart:132)
<asynchronous suspension>
#1 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#2 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#3 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#4 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#5 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
2026-06-13 11:54:59.781956 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:48:36.285678 | info | HashService | Hashing took - 2ms |
2026-06-13 11:48:36.282825 | info | HashService | Starting hashing of assets |
2026-06-13 11:48:34.227210 | info | DeviceSyncService | Device sync took - 79ms |
2026-06-13 11:48:34.226812 | info | DeviceSyncService | Full device sync took - 77ms |
2026-06-13 11:48:34.170621 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | ApiException 400: Exception occurred: GET /server/version (Inner exception: Exception in Java code called through JNI: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
at okhttp3.HttpUrl$Builder.parse$okhttp(Unknown Source:665)
at okhttp3.HttpUrl$Companion.get(SourceFile:1)
at okhttp3.Request$Builder.url(SourceFile:6)
)
#0 Jni.throwException (package:jni/src/jni.dart:196)
#1 _check (package:jni/src/accessors.dart:17)
#2 JniResultMethods.check (package:jni/src/accessors.dart:23)
#3 JniResultMethods.objectPointer (package:jni/src/accessors.dart:61)
#4 JniResultMethods.reference (package:jni/src/accessors.dart:71)
#5 JniResultMethods.object (package:jni/src/accessors.dart:76)
#6 Request$Builder.url$1 (package:ok_http/src/jni/bindings.dart:162)
#7 OkHttpClient.send (package:ok_http/src/ok_http_client.dart:459)
#8 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#9 BaseClient.get (package:http/src/base_client.dart:27)
#10 ApiClient.invokeAPI (package:openapi/api_client.dart:101)
<asynchronous suspension>
#11 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#12 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#13 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#14 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#15 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
|
#0 ApiClient.invokeAPI (package:openapi/api_client.dart:132)
<asynchronous suspension>
#1 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#2 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#3 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#4 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#5 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
2026-06-13 11:48:34.149116 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:46:52.749964 | severe | ApiService | Error while checking server availability | ApiException 400: HTTP connection failed: GET /server/ping (Inner exception: ClientException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found., uri=https://photos.kajaniwebo.uk/api/server/ping)
|
#0 ApiClient.invokeAPI (package:openapi/api_client.dart:125)
<asynchronous suspension>
#1 ServerApi.pingServer (package:openapi/api/server_api.dart:672)
<asynchronous suspension>
#2 Future.timeout.<anonymous closure> (dart:async/future_impl.dart:1061)
<asynchronous suspension>
#3 ApiService._isEndpointAvailable (package:immich_mobile/services/api.service.dart:122)
<asynchronous suspension>
#4 ApiService.resolveEndpoint (package:immich_mobile/services/api.service.dart:107)
<asynchronous suspension>
#5 ApiService.resolveAndSetEndpoint (package:immich_mobile/services/api.service.dart:83)
<asynchronous suspension>
#6 AuthService.validateServerUrl (package:immich_mobile/services/auth.service.dart:59)
<asynchronous suspension>
#7 LoginForm.build.getServerAuthSettings (package:immich_mobile/widgets/forms/login/login_form.dart:112)
<asynchronous suspension>
#8 ImmichFormState.submit (package:immich_ui/src/components/form.dart:55)
<asynchronous suspension>
2026-06-13 11:46:51.910405 | severe | ApiService | Error while checking server availability | ApiException 400: HTTP connection failed: GET /server/ping (Inner exception: ClientException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found., uri=https://photos.kajaniwebo.uk/api/server/ping)
|
#0 ApiClient.invokeAPI (package:openapi/api_client.dart:125)
<asynchronous suspension>
#1 ServerApi.pingServer (package:openapi/api/server_api.dart:672)
<asynchronous suspension>
#2 Future.timeout.<anonymous closure> (dart:async/future_impl.dart:1061)
<asynchronous suspension>
#3 ApiService._isEndpointAvailable (package:immich_mobile/services/api.service.dart:122)
<asynchronous suspension>
#4 ApiService.resolveEndpoint (package:immich_mobile/services/api.service.dart:107)
<asynchronous suspension>
#5 ApiService.resolveAndSetEndpoint (package:immich_mobile/services/api.service.dart:83)
<asynchronous suspension>
#6 AuthService.validateServerUrl (package:immich_mobile/services/auth.service.dart:59)
<asynchronous suspension>
#7 LoginForm.build.getServerAuthSettings (package:immich_mobile/widgets/forms/login/login_form.dart:112)
<asynchronous suspension>
#8 ImmichFormState.submit (package:immich_ui/src/components/form.dart:55)
<asynchronous suspension>
2026-06-13 11:46:49.813084 | info | HashService | Hashing took - 1ms |
2026-06-13 11:46:49.811302 | info | HashService | Starting hashing of assets |
2026-06-13 11:46:48.832194 | severe | ApiService | Error while checking server availability | ApiException 400: HTTP connection failed: GET /server/ping (Inner exception: ClientException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found., uri=https://photos.kajaniwebo.uk/api/server/ping)
|
#0 ApiClient.invokeAPI (package:openapi/api_client.dart:125)
<asynchronous suspension>
#1 ServerApi.pingServer (package:openapi/api/server_api.dart:672)
<asynchronous suspension>
#2 Future.timeout.<anonymous closure> (dart:async/future_impl.dart:1061)
<asynchronous suspension>
#3 ApiService._isEndpointAvailable (package:immich_mobile/services/api.service.dart:122)
<asynchronous suspension>
#4 ApiService.resolveEndpoint (package:immich_mobile/services/api.service.dart:107)
<asynchronous suspension>
#5 ApiService.resolveAndSetEndpoint (package:immich_mobile/services/api.service.dart:83)
<asynchronous suspension>
#6 AuthService.validateServerUrl (package:immich_mobile/services/auth.service.dart:59)
<asynchronous suspension>
#7 LoginForm.build.getServerAuthSettings (package:immich_mobile/widgets/forms/login/login_form.dart:112)
<asynchronous suspension>
#8 ImmichFormState.submit (package:immich_ui/src/components/form.dart:55)
<asynchronous suspension>
2026-06-13 11:46:47.780371 | info | DeviceSyncService | Device sync took - 79ms |
2026-06-13 11:46:47.779701 | info | DeviceSyncService | Full device sync took - 78ms |
2026-06-13 11:46:47.711747 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | ApiException 400: Exception occurred: GET /server/version (Inner exception: Exception in Java code called through JNI: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
at okhttp3.HttpUrl$Builder.parse$okhttp(Unknown Source:665)
at okhttp3.HttpUrl$Companion.get(SourceFile:1)
at okhttp3.Request$Builder.url(SourceFile:6)
)
#0 Jni.throwException (package:jni/src/jni.dart:196)
#1 _check (package:jni/src/accessors.dart:17)
#2 JniResultMethods.check (package:jni/src/accessors.dart:23)
#3 JniResultMethods.objectPointer (package:jni/src/accessors.dart:61)
#4 JniResultMethods.reference (package:jni/src/accessors.dart:71)
#5 JniResultMethods.object (package:jni/src/accessors.dart:76)
#6 Request$Builder.url$1 (package:ok_http/src/jni/bindings.dart:162)
#7 OkHttpClient.send (package:ok_http/src/ok_http_client.dart:459)
#8 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#9 BaseClient.get (package:http/src/base_client.dart:27)
#10 ApiClient.invokeAPI (package:openapi/api_client.dart:101)
<asynchronous suspension>
#11 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#12 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#13 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#14 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#15 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
|
#0 ApiClient.invokeAPI (package:openapi/api_client.dart:132)
<asynchronous suspension>
#1 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#2 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#3 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#4 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#5 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
2026-06-13 11:46:47.700943 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:45:30.482428 | info | HashService | Hashing took - 2ms |
2026-06-13 11:45:30.479590 | info | HashService | Starting hashing of assets |
2026-06-13 11:45:28.438153 | info | DeviceSyncService | Device sync took - 57ms |
2026-06-13 11:45:28.437683 | info | DeviceSyncService | Full device sync took - 57ms |
2026-06-13 11:45:28.392153 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | ApiException 400: Exception occurred: GET /server/version (Inner exception: Exception in Java code called through JNI: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
at okhttp3.HttpUrl$Builder.parse$okhttp(Unknown Source:665)
at okhttp3.HttpUrl$Companion.get(SourceFile:1)
at okhttp3.Request$Builder.url(SourceFile:6)
)
#0 Jni.throwException (package:jni/src/jni.dart:196)
#1 _check (package:jni/src/accessors.dart:17)
#2 JniResultMethods.check (package:jni/src/accessors.dart:23)
#3 JniResultMethods.objectPointer (package:jni/src/accessors.dart:61)
#4 JniResultMethods.reference (package:jni/src/accessors.dart:71)
#5 JniResultMethods.object (package:jni/src/accessors.dart:76)
#6 Request$Builder.url$1 (package:ok_http/src/jni/bindings.dart:162)
#7 OkHttpClient.send (package:ok_http/src/ok_http_client.dart:459)
#8 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#9 BaseClient.get (package:http/src/base_client.dart:27)
#10 ApiClient.invokeAPI (package:openapi/api_client.dart:101)
<asynchronous suspension>
#11 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#12 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#13 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#14 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#15 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
|
#0 ApiClient.invokeAPI (package:openapi/api_client.dart:132)
<asynchronous suspension>
#1 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#2 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#3 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#4 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#5 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
2026-06-13 11:45:28.386763 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:44:44.838197 | info | HashService | Hashing took - 3ms |
2026-06-13 11:44:44.834228 | info | HashService | Starting hashing of assets |
2026-06-13 11:44:42.800702 | info | DeviceSyncService | Device sync took - 134ms |
2026-06-13 11:44:42.800431 | info | DeviceSyncService | Full device sync took - 133ms |
2026-06-13 11:44:42.701988 | severe | IsolateLogger | Error in runInIsolateGentle for remote-sync | ApiException 400: Exception occurred: GET /server/version (Inner exception: Exception in Java code called through JNI: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /serve...
at okhttp3.HttpUrl$Builder.parse$okhttp(Unknown Source:665)
at okhttp3.HttpUrl$Companion.get(SourceFile:1)
at okhttp3.Request$Builder.url(SourceFile:6)
)
#0 Jni.throwException (package:jni/src/jni.dart:196)
#1 _check (package:jni/src/accessors.dart:17)
#2 JniResultMethods.check (package:jni/src/accessors.dart:23)
#3 JniResultMethods.objectPointer (package:jni/src/accessors.dart:61)
#4 JniResultMethods.reference (package:jni/src/accessors.dart:71)
#5 JniResultMethods.object (package:jni/src/accessors.dart:76)
#6 Request$Builder.url$1 (package:ok_http/src/jni/bindings.dart:162)
#7 OkHttpClient.send (package:ok_http/src/ok_http_client.dart:459)
#8 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#9 BaseClient.get (package:http/src/base_client.dart:27)
#10 ApiClient.invokeAPI (package:openapi/api_client.dart:101)
<asynchronous suspension>
#11 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#12 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#13 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#14 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#15 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
|
#0 ApiClient.invokeAPI (package:openapi/api_client.dart:132)
<asynchronous suspension>
#1 ServerApi.getServerVersion (package:openapi/api/server_api.dart:381)
<asynchronous suspension>
#2 SyncStreamService.sync (package:immich_mobile/domain/services/sync_stream.service.dart:65)
<asynchronous suspension>
#3 runInIsolateGentle.<anonymous closure>.<anonymous closure> (package:immich_mobile/utils/isolate.dart:56)
<asynchronous suspension>
#4 runInIsolateGentle.<anonymous closure> (package:immich_mobile/utils/isolate.dart:36)
<asynchronous suspension>
#5 WorkerImpl._anotherIsolate.<anonymous closure> (package:worker_manager/src/worker/worker_io.dart:106)
<asynchronous suspension>
2026-06-13 11:44:42.663582 | info | SyncStreamService | Remote sync request for user |
2026-06-13 11:44:17.623820 | severe | SplashScreenPage | Missing crucial offline login info - Logging out completely |Additional information
|
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 5 replies
-
|
This is actually a problem with your custom login page setup |
Beta Was this translation helpful? Give feedback.
-
|
That matches the logs too.The app is asking Immich API endpoints but gets nginx/html back instead of JSON, so I would check the YunoHost/nginx custom login or proxy first and make sure the Immich API paths are not going through that custom login page |
Beta Was this translation helpful? Give feedback.
-
|
try to disable the yunohost/custom login layer for the immich, just make sure /api/* bypasses it and will go directly to immich, otherwise the mobile app can receive the HTML instead of the API JSON and might falsely show “Your App Major version is not compatible with this server.” |
Beta Was this translation helpful? Give feedback.
-
|
This is a related topic in the YunoHost forum, the server I use: |
Beta Was this translation helpful? Give feedback.


The issue was that for apps, you need to enable "Visitors" to view the app, so that the app can ping the server without authentication.