-
Notifications
You must be signed in to change notification settings - Fork 336
Open
Labels
bug?Maybe it's a bugMaybe it's a bug
Description
请确保您已阅读以上注意事项,并勾选下方的确认框。
- 我已经仔细阅读上述内容
- 我已经使用 最新构建 测试过,问题依旧存在。
- 我已经在 Issue Tracker 中找过我要提出的问题,没有找到相同问题的ISSUE。
- 我已知晓并同意,此处仅用于汇报程序中存在的问题。若这个 Issue 是关于其他非程序本身问题,则我的 Issue 可能会被无条件自动关闭或/并锁定。(其它疑问请考虑加入TG群询问或在discussions中提问)
Lagrange项目
OneBot
所使用/依赖的Lagrange项目对应的commit
运行环境
Linux
运行架构
x64
连接方式
反向 WebSocket
重现步骤
在特定群组中,所有正常的群聊消息均无法通过 OneBot 适配器上报给下游应用(如 Koishi)。通过日志分析发现,Lagrange 在接收到这些正常的聊天消息时,似乎错误地将其判断为“新人入群”事件,并尝试使用 GroupMemberEnterDetail 的协议格式进行解析,最终因格式不匹配而抛出 Invalid field 异常,导致该消息被丢弃,无法正常处理。
此问题在更新到最新的 Docker 镜像后依然存在。
期望的结果是什么?
特定群组中的正常聊天消息应该被正确解析,并通过 OneBot 适配器正常上报。
实际的结果是什么?
特定群组中的正常聊天消息没有被上报。Lagrange 日志中出现大量与 GroupMemberEnterDetail 相关的 Protobuf 解析失败警告,即使当时并没有新成员加入群聊。
简单的复现代码/链接(可选)
Trace 级别日志记录(可选)
[2025-09-12 08:30:01] [MessagingLogic] [VERBOSE]: [MessageChain([ProblematicGroupID])([UserID_A])] [Text]: 是qq到连接器的问题
[2025-09-12 08:30:16] [BusinessContext] [WARNING]: Error while handling msf push: 12 trpc.msg.olpush.OlPushService.MsgPush
[2025-09-12 08:30:16] [BusinessContext] [WARNING]: Invalid field in source data: 0
[2025-09-12 08:30:16] [BusinessContext] [WARNING]: at ProtoBuf.Internal.ThrowHelper.ThrowProtoException(String message, Exception inner) in /_/src/protobuf-net.Core/Internal/ThrowHelper.cs:line 86
at ProtoBuf.ProtoReader.ThrowInvalidField(Int32 fieldNumber) in /_/src/protobuf-net.Core/ProtoReader.cs:line 325
at proto_86(State&, GroupMemberEnterDetail)
at ProtoBuf.Internal.Serializers.SimpleCompiledSerializer`1.ProtoBuf.Serializers.ISerializer<T>.Read(State& state, T value) in /_/src/protobuf-net/Internal/Serializers/CompiledSerializer.cs:line 107
at ProtoBuf.ProtoReader.State.ReadMessage[TSerializer,T](SerializerFeatures features, T value, TSerializer& serializer) in /_/src/protobuf-net.Core/ProtoReader.State.ReadMethods.cs:line 1022
at proto_84(State&, GroupMemberEnterInfo)
at ProtoBuf.Internal.Serializers.SimpleCompiledSerializer`1.ProtoBuf.Serializers.ISerializer<T>.Read(State& state, T value) in /_/src/protobuf-net/Internal/Serializers/CompiledSerializer.cs:line 107
at ProtoBuf.ProtoReader.State.ReadMessage[TSerializer,T](SerializerFeatures features, T value, TSerializer& serializer) in /_/src/protobuf-net.Core/ProtoReader.State.ReadMethods.cs:line 1022
at proto_80(State&, GroupMemberEnterContentBody)
at ProtoBuf.Internal.Serializers.SimpleCompiledSerializer`1.ProtoBuf.Serializers.ISerializer<T>.Read(State& state, T value) in /_/src/protobuf-net/Internal/Serializers/CompiledSerializer.cs:line 107
at ProtoBuf.ProtoReader.State.ReadMessage[TSerializer,T](SerializerFeatures features, T value, TSerializer& serializer) in /_/src/protobuf-net.Core/ProtoReader.State.ReadMethods.cs:line 1022
at proto_78(State&, GroupMemberEnter)
at ProtoBuf.Internal.Serializers.SimpleCompiledSerializer`1.ProtoBuf.Serializers.ISerializer<T>.Read(State& state, T value) in /_/src/protobuf-net/Internal/Serializers/CompiledSerializer.cs:line 107
at ProtoBuf.ProtoReader.State.ReadAsRoot[T](T value, ISerializer`1 serializer) in /_/src/protobuf-net.Core/ProtoReader.State.ReadMethods.cs:line 1157
at ProtoBuf.ProtoReader.State.DeserializeRoot[T](T value, ISerializer`1 serializer) in /_/src/protobuf-net.Core/ProtoReader.State.ReadMethods.cs:line 1137
at ProtoBuf.Meta.TypeModel.Deserialize[T](ReadOnlySpan`1 source, T value, Object userState) in /_/src/protobuf-net.Core/Meta/TypeModel.cs:line 808
at ProtoBuf.Serializer.Deserialize[T](ReadOnlySpan`1 source, T value, Object userState) in /_/src/protobuf-net/Serializer.Deserialize.cs:line 74
at Lagrange.Core.Internal.Service.Message.PushMessageService.ProcessEvent0x210(Span`1 payload, PushMsg msg, List`1 extraEvents)
at Lagrange.Core.Internal.Service.Message.PushMessageService.Parse(Span`1 input, BotKeystore keystore, BotAppInfo appInfo, BotDeviceInfo device, PushMessageEvent& output, List`1& extraEvents)
at Lagrange.Core.Internal.Service.BaseService`1.Lagrange.Core.Internal.Service.IService.Parse(Span`1 input, BotKeystore keystore, BotAppInfo appInfo, BotDeviceInfo device, ProtocolEvent& output, List`1& extraEvents)
at Lagrange.Core.Internal.Context.ServiceContext.ResolveEventByPacket(SsoPacket packet)
at Lagrange.Core.Internal.Context.BusinessContext.HandleServerPacket(SsoPacket packet)
[2025-09-12 08:30:20] [MessagingLogic] [VERBOSE]: [MessageChain([ProblematicGroupID])([UserID_A])] [Text]: 不知道为什么正常的群消息被解析成进群消息了
[2025-09-12 08:30:38] [MessagingLogic] [VERBOSE]: [MessageChain([ProblematicGroupID])([UserID_B])] [Text]: 怪
补充说明(可选)
No response
Metadata
Metadata
Assignees
Labels
bug?Maybe it's a bugMaybe it's a bug