opatry / taskfolio

An Android task management app built using Google Tasks API. Developed to demonstrate my expertise in modern Android development.
https://opatry.github.io/taskfolio/
MIT License
0 stars 0 forks source link

Crash when starting the app without Internet #9

Closed opatry closed 3 days ago

opatry commented 4 days ago

Describe the bug Crash when starting the app without Internet.

To Reproduce Steps to reproduce the behavior:

  1. cut network on the device (Android or Desktop
  2. start the app
  3. 💥

Expected behavior App launches and relies on "offline-first" good properties, loading content (if any) from database.

[!TIP]

Fatal Exception: java.nio.channels.UnresolvedAddressException:
       at sun.nio.ch.Net.checkAddress(Net.java:107)
       at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:663)
       at io.ktor.network.sockets.SocketImpl.connect$ktor_network(SocketImpl.kt:44)
       at io.ktor.network.sockets.ConnectUtilsJvmKt.connect(ConnectUtilsJvm.kt:21)
       at io.ktor.network.sockets.TcpSocketBuilder.connect(TcpSocketBuilder.kt:37)
       at io.ktor.client.engine.cio.ConnectionFactory.connect(ConnectionFactory.kt:30)
       at io.ktor.client.engine.cio.Endpoint$connect$2$connect$1.invokeSuspend(Endpoint.kt:207)
       at io.ktor.client.engine.cio.Endpoint$connect$2$connect$1.invoke(:8)
       at io.ktor.client.engine.cio.Endpoint$connect$2$connect$1.invoke(:4)
       at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:53)
       at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:148)
       at kotlinx.coroutines.TimeoutKt.withTimeoutOrNull(Timeout.kt:104)
       at io.ktor.client.engine.cio.Endpoint.connect(Endpoint.kt:215)
       at io.ktor.client.engine.cio.Endpoint.makeDedicatedRequest(Endpoint.kt:100)
       at io.ktor.client.engine.cio.Endpoint.execute(Endpoint.kt:64)
       at io.ktor.client.engine.cio.CIOEngine.execute(CIOEngine.kt:79)
       at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:99)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
       at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
       at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
       at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:823)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)