Skip to content

多模态请求发送前抛异常 com.alibaba.dashscope.exception.ApiException #250

Closed

Description

@newvoid7

请求信息

messages

[
  {
    "role":"user",
    "content":[
      {"text":"大约 14KB 的提示词"},
      {
        "video":[
          "PNG 图片的 Base64 编码结果", 
          // 共 6 张,每张大约 200K
        ],
       "fps":0.1
      }
    ]
  }
]

其他参数

  • ResponseFormatType
  • Temperature
  • TopP
  • Seed

报错堆栈 (2.22.26)

com.alibaba.dashscope.exception.ApiException: {"statusCode":-1,"message":"UnsupportedOperationException: null","code":"network error","isJson":false}; status body:{"statusCode":-1,"message":"UnsupportedOperationException: null","code":"network error","isJson":false} | at com.google.gson.internal.bind.JsonTreeWriter.jsonValue(JsonTreeWriter.java:241) | at com.alibaba.dashscope.common.MultiModalMessageAdapter.writeValue(MultiModalMessageAdapter.java:51) | at com.alibaba.dashscope.common.MultiModalMessageAdapter.writeMapObject(MultiModalMessageAdapter.java:31) | at com.alibaba.dashscope.common.MultiModalMessageAdapter.write(MultiModalMessageAdapter.java:226) | at com.alibaba.dashscope.common.MultiModalMessageAdapter.write(MultiModalMessageAdapter.java:25) | at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:73) | at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:100) | at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:64) | at com.google.gson.Gson.toJson(Gson.java:944) | at com.google.gson.Gson.toJsonTree(Gson.java:802) | at com.google.gson.Gson.toJsonTree(Gson.java:779) | at com.alibaba.dashscope.utils.JsonUtils.toJsonArray(JsonUtils.java:80) | at com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam.getInput(MultiModalConversationParam.java:203) | at com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam.getHttpBody(MultiModalConversationParam.java:192) | at com.alibaba.dashscope.protocol.HalfDuplexRequest.getHttpRequest(HalfDuplexRequest.java:124) | at com.alibaba.dashscope.protocol.okhttp.OkHttpHttpClient.send(OkHttpHttpClient.java:242) | at com.alibaba.dashscope.api.SynchronizeHalfDuplexApi.call(SynchronizeHalfDuplexApi.java:58) | at com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation.call(MultiModalConversation.java:107) | at
...

版本信息

2.22.26, 2.22.28 有问题
2.21.10 无问题

Activity

  1. lzsweb commented on Aug 7, 2026

    @lzsweb
    Collaborator

    感谢反馈!问题已定位并修复,将随下一个版本发布。

    原因:v2.22.25 引入的改动(#244)在 MultiModalMessageAdapter 序列化 BigDecimal/BigInteger 类型的值(如 content 中的 fps)时使用了 JsonWriter.jsonValue(),而多模态请求构建 body 时走的是 Gson.toJsonTree()(内部为 JsonTreeWriter),该方法在 JsonTreeWriter 上会抛出 UnsupportedOperationException,导致请求发送前报错。

    修复方式:改用 JsonTreeWriter 兼容的 value(Number) 写入数字,并对兜底分支做同样处理。

    感谢 @newvoid7 的详细报告(含版本对比信息),对快速定位帮助很大!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions