jellyfin-sdk-kotlin
jellyfin-sdk-kotlin copied to clipboard
Discovery crashes with invalid port
When a user is dumb and makes a typo and the HTTP port is out of range the discovery stuff throws an exception and the Android TV app crashes... I was the dumb user.
Stack Trace:
java.lang.IllegalArgumentException: port must be between 0 and 65535, or 0 if not set
at io.ktor.http.Url.<init>(URLBuilder.kt:144)
at io.ktor.http.URLBuilder.build(URLBuilder.kt:98)
at org.jellyfin.sdk.discovery.AddressCandidateHelper.<init>(AddressCandidateHelper.kt:55)
at org.jellyfin.sdk.discovery.DiscoveryService.getAddressCandidates(DiscoveryService.kt:27)
at org.jellyfin.androidtv.auth.repository.ServerRepositoryImpl$addServer$1.invokeSuspend(ServerRepository.kt:90)
at org.jellyfin.androidtv.auth.repository.ServerRepositoryImpl$addServer$1.invoke(Unknown Source:8)
at org.jellyfin.androidtv.auth.repository.ServerRepositoryImpl$addServer$1.invoke(Unknown Source:4)
at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:61)
at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:230)
at org.jellyfin.androidtv.ui.startup.ServerAddViewModel$addServer$1.invokeSuspend(ServerAddViewModel.kt:19)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:367)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:30)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:25)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:110)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source:1)
at org.jellyfin.androidtv.ui.startup.ServerAddViewModel.addServer(ServerAddViewModel.kt:18)
at org.jellyfin.androidtv.ui.startup.fragment.ServerAddFragment.submitAddress(ServerAddFragment.kt:107)
at org.jellyfin.androidtv.ui.startup.fragment.ServerAddFragment.onCreateView$lambda-4$lambda-3(ServerAddFragment.kt:50)
at org.jellyfin.androidtv.ui.startup.fragment.ServerAddFragment.$r8$lambda$uSCCu62gCVZN90XjWAl5IwN7O5U(Unknown Source:0)
at org.jellyfin.androidtv.ui.startup.fragment.ServerAddFragment$$ExternalSyntheticLambda0.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:6597)
at android.view.View.performClickInternal(View.java:6574)
at android.view.View.access$3100(View.java:778)
at android.view.View$PerformClick.run(View.java:25885)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@9106673, Dispatchers.Main.immediate]
Log lines before exception:
08-13 07:35:18.707 D/ServerRepositoryImpl$addServer( 4635): Adding server http://192.168.1.10:80961
08-13 07:35:18.707 D/AddressCandidateHelper( 4635): Input is http://192.168.1.10:80961