Skip to content

收不到好友撤回消息事件 #2784

@0f-0b

Description

@0f-0b

问题描述

好友撤回消息后无法通过 mirai-api-http 收到 FriendRecallEvent。Console 报错。

复现

好友撤回消息。

mirai-core 版本

2.15.0

bot-protocol

ANDROID_PAD

其他组件版本

Running MiraiConsole v2.15.0, built on 2023-07-11 04:57:17.
Frontend Terminal: version 2.15.0, provided by Mamoe Technologies

Permission Service: Built In Permission Service

Plugins: fix-protocol-version v1.9.10, mirai-api-http v2.9.1, MCL Addon v2.1.1

Object Pending Finalization Count: 0
                 committed |  init  |  used   |   max
    Heap Memory:  97.0MB   | 32.0MB | 70.56MB | 512.0MB
Non-Heap Memory: 104.62MB  | 7.31MB | 98.84MB |   -1

系统日志

2023-08-26 21:01:01 E/Bot.**: Exception on parsing packet.
java.lang.IllegalStateException: Exception in net.mamoe.mirai.internal.network.notice.priv.FriendNoticeProcessor@646edd67 while processing packet MsgType0x210.
        at net.mamoe.mirai.internal.network.components.NoticeProcessorPipelineImpl.handleExceptionInProcess(NoticeProcessorPipeline.kt:105)
        at net.mamoe.mirai.internal.network.components.NoticeProcessorPipelineImpl.handleExceptionInProcess(NoticeProcessorPipeline.kt:80)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:289)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:275)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline$BaseContextImpl.processAlso$suspendImpl(ProcessorPipeline.kt:259)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline$BaseContextImpl.processAlso(ProcessorPipeline.kt)
        at net.mamoe.mirai.internal.network.notice.decoders.MsgInfoDecoder.decodeMsgInfo(MsgInfoDecoder.kt:49)
        at net.mamoe.mirai.internal.network.notice.decoders.MsgInfoDecoder.processImpl(MsgInfoDecoder.kt:39)
        at net.mamoe.mirai.internal.network.notice.decoders.MsgInfoDecoder.processImpl(MsgInfoDecoder.kt:32)
        at net.mamoe.mirai.internal.network.components.SimpleNoticeProcessor.process(NoticeProcessorPipeline.kt:147)
        at net.mamoe.mirai.internal.network.components.SimpleNoticeProcessor.process(NoticeProcessorPipeline.kt:141)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:287)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:275)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt)
        at net.mamoe.mirai.internal.network.protocol.packet.chat.receive.OnlinePushReqPush.decode(OnlinePush.ReqPush.kt:64)
        at net.mamoe.mirai.internal.network.components.PacketCodecImpl.processBody(PacketCodec.kt:586)
        at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline.processBody(CommonNetworkHandler.kt:158)
        at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline.access$processBody(CommonNetworkHandler.kt:103)
        at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invokeSuspend(CommonNetworkHandler.kt:127)
        at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invoke(CommonNetworkHandler.kt)
        at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invoke(CommonNetworkHandler.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
        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)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
        at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source)
        at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1.invokeSuspend(CommonNetworkHandler.kt:127)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:1623)
Caused by: kotlinx.serialization.MissingFieldException: Field 'flag' is required for type with serial name 'net.mamoe.mirai.internal.network.notice.priv.FriendNoticeProcessor.Sub8AMsgInfo', but it was missing
        at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)
        at net.mamoe.mirai.internal.network.notice.priv.FriendNoticeProcessor$Sub8AMsgInfo.<init>(FriendNoticeProcessor.kt:146)
        at net.mamoe.mirai.internal.network.notice.priv.FriendNoticeProcessor$Sub8AMsgInfo$$serializer.deserialize(FriendNoticeProcessor.kt:146)
        at net.mamoe.mirai.internal.network.notice.priv.FriendNoticeProcessor$Sub8AMsgInfo$$serializer.deserialize(FriendNoticeProcessor.kt:146)
        at kotlinx.serialization.protobuf.internal.ProtobufDecoder.decodeSerializableValue(ProtobufDecoding.kt:196)
        at kotlinx.serialization.protobuf.internal.ProtobufTaggedDecoder.decodeSerializableElement(ProtobufTaggedDecoder.kt:82)
        at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:533)
        at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
        at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
        at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
        at kotlinx.serialization.protobuf.internal.ProtobufDecoder.decodeSerializableValue(ProtobufDecoding.kt:195)
        at kotlinx.serialization.protobuf.internal.ProtobufTaggedDecoder.decodeSerializableElement(ProtobufTaggedDecoder.kt:82)
        at net.mamoe.mirai.internal.network.notice.priv.FriendNoticeProcessor$Sub8A$$serializer.deserialize(FriendNoticeProcessor.kt:161)
        at net.mamoe.mirai.internal.network.notice.priv.FriendNoticeProcessor$Sub8A$$serializer.deserialize(FriendNoticeProcessor.kt:161)
        at kotlinx.serialization.protobuf.internal.ProtobufDecoder.decodeSerializableValue(ProtobufDecoding.kt:196)
        at kotlinx.serialization.protobuf.internal.ProtobufDecoder.decodeSerializableValue(ProtobufDecoding.kt:186)
        at kotlinx.serialization.protobuf.ProtoBuf.decodeFromByteArray(ProtoBuf.kt:137)
        at net.mamoe.mirai.internal.utils.io.serialization.SerializationUtils__UtilsKt.loadAs(utils.kt:230)
        at net.mamoe.mirai.internal.utils.io.serialization.SerializationUtils.loadAs(utils.kt:1)
        at net.mamoe.mirai.internal.utils.io.serialization.SerializationUtils__UtilsKt.loadAs$default(utils.kt:225)
        at net.mamoe.mirai.internal.utils.io.serialization.SerializationUtils.loadAs$default(utils.kt:1)
        at net.mamoe.mirai.internal.network.notice.priv.FriendNoticeProcessor.processImpl(FriendNoticeProcessor.kt:132)
        at net.mamoe.mirai.internal.network.components.MixedNoticeProcessor.processImpl(NoticeProcessorPipeline.kt:169)
        at net.mamoe.mirai.internal.network.components.SimpleNoticeProcessor.process(NoticeProcessorPipeline.kt:147)
        at net.mamoe.mirai.internal.network.components.SimpleNoticeProcessor.process(NoticeProcessorPipeline.kt:141)
        at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:287)
        ... 38 more

网络日志

No response

补充信息

  • 签名服务:unidbg-fetch-qsign 1.1.7b2。
  • 协议版本:8.9.63.11390。

Metadata

Metadata

Assignees

No one assigned

    Labels

    N优先级: 一般s:core子系统: mirai-coret:bug类型: bugx:protocol属性: 协议相关

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions