diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
index e0862f25e..8750df116 100644
--- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
+++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
@@ -280,6 +280,11 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
             while (rawInput.remaining >= length) {
                 parsePacketAsync(rawInput.readPacket(length))
 
+                if (rawInput.remaining == 0L) {
+                    cachedPacket.value = null // 表示包长度正好
+                    cachedPacketTimeoutJob?.cancel()
+                    return
+                }
                 length = rawInput.readInt() - 4
             }