Skip to content

[Bug?]: 在处理包含特定图片消息的群聊时,引发 System.NullReferenceException #886

@Starry-Sky-World

Description

@Starry-Sky-World

请确保您已阅读以上注意事项,并勾选下方的确认框。

  • 我已经仔细阅读上述内容
  • 我已经使用 最新构建 测试过,问题依旧存在。
  • 我已经在 Issue Tracker 中找过我要提出的问题,没有找到相同问题的ISSUE。
  • 我已知晓并同意,此处仅用于汇报程序中存在的问题。若这个 Issue 是关于其他非程序本身问题,则我的 Issue 可能会被无条件自动关闭或/并锁定。(其它疑问请考虑加入TG群询问或在discussions中提问)

Lagrange项目

Core

所使用/依赖的Lagrange项目对应的commit

6b6838c

运行环境

其它(请在下方说明)

运行架构

arm64

连接方式

正向 WebSocket

重现步骤

环境:macOS(docker)/Linux
复现:未知,似乎是由特定的 image message 导致的异常

期望的结果是什么?

修复,正常响应

实际的结果是什么?

获取聊天记录失败

简单的复现代码/链接(可选)

未知但似乎(我这里)大部分群都可以触发(使用 stapxsqqlite,其他未知)

Trace 级别日志记录(可选)

trce: Lagrange.OneBot.Core.Network.Service.ForwardWSService[12]
      Receive(***) {"action":"get_group_msg_history","params":{"group_id":***,"message_id":***,"count":20},"echo":"send_getChatHistory"}
trce: Lagrange.Core.BotContext[0]
      [2025-08-30 09:40:31] [ServiceContext] [DEBUG]: Outgoing SSOFrame: trpc.msg.register_proxy.RegisterProxy.SsoGetGroupMsg
warn: Lagrange.Core.BotContext[0]
      [2025-08-30 09:40:31] [BusinessContext] [WARNING]: Error when processing the event: Lagrange.Core.Internal.Event.Message.GetGroupMessageEvent
warn: Lagrange.Core.BotContext[0]
      [2025-08-30 09:40:31] [BusinessContext] [WARNING]: System.NullReferenceException: Object reference not set to an instance of an object.
         at Lagrange.Core.Message.Entity.ImageEntity.Lagrange.Core.Message.IMessageEntity.UnpackElement(Elem elems)
         at Lagrange.Core.Message.MessagePacker.Parse(PushMsgBody message, Boolean isFake)
         at Lagrange.Core.Message.Entity.ForwardEntity.Lagrange.Core.Message.IMessageEntity.UnpackElement(Elem elem)
         at Lagrange.Core.Message.MessagePacker.Parse(PushMsgBody message, Boolean isFake)
         at Lagrange.Core.Internal.Service.Message.GetGroupMessageService.<>c.<Parse>b__1_0(PushMsgBody x)
         at System.Linq.Enumerable.ListSelectIterator`2.Fill(ReadOnlySpan`1 source, Span`1 destination, Func`2 func)
         at System.Linq.Enumerable.ListSelectIterator`2.ToList()
         at Lagrange.Core.Internal.Service.Message.GetGroupMessageService.Parse(Span`1 input, BotKeystore keystore, BotAppInfo appInfo, BotDeviceInfo device, GetGroupMessageEvent& 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.SendEvent(ProtocolEvent event)
warn: Lagrange.OneBot.Core.Operation.OperationService[0]
      Unexpected error encountered while handling message.
      System.Exception: Exception of type 'System.Exception' was thrown.
         at Lagrange.OneBot.Core.Operation.Message.GetGroupMessageHistoryOperation.HandleOperation(BotContext context, JsonNode payload)
         at Lagrange.OneBot.Core.Operation.OperationService.HandleOperation(MsgRecvEventArgs e)
trce: Lagrange.OneBot.Core.Network.Service.ForwardWSService[13]
      Send(***) {"status":"failed","retcode":200,"data":null,"echo":"send_getChatHistory"}

补充说明(可选)

似乎在大部分群的部分片段聊天历史会诱发此错误,目前未知因为什么消息体导致的爆炸(

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug?Maybe it's a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions