diff --git a/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt b/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt index 8cbef466c..e1104924c 100644 --- a/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt +++ b/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt @@ -217,11 +217,15 @@ internal open class NettyNetworkHandler( createConnection(decodePipeline) } - private val connectResult = async { - connection.join() - context[SsoProcessor].login(this@NettyNetworkHandler) - }.apply { - invokeOnCompletion { error -> + @Suppress("JoinDeclarationAndAssignment") + private val connectResult: Deferred<Unit> + + init { + connectResult = async { + connection.join() + context[SsoProcessor].login(this@NettyNetworkHandler) + } + connectResult.invokeOnCompletion { error -> if (error == null) { this@NettyNetworkHandler.launch { resumeConnection() } } else { @@ -238,6 +242,7 @@ internal open class NettyNetworkHandler( } // and this error will also be thrown by `StateConnecting.resumeConnection` } + } override fun getCause(): Throwable? = collectiveExceptions.getLast()