错误信息: The `messages.[1]` message role is repeated 堆栈信息: AI_APICallError: The `me...

2026年03月23日 11:48 状态: processing

🚨 错误信息

错误名称: AI_APICallError 错误信息: The `messages.[1]` message role is repeated 堆栈信息: AI_APICallError: The `messages.[1]` message role is repeated at file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/dist-CUjkTMRK.js:2082:11 at async postToApi (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/dist-CUjkTMRK.js:1977:24) at async OpenAICompatibleChatLanguageModel.doStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/dist-BTy3HrgJ.js:451:48) at async wrapStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-BDFHZEb3.js:48614:32) at async fn (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-BDFHZEb3.js:47480:17) at async file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-BDFHZEb3.js:43834:19 at async _retryWithExponentialBackoff (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-BDFHZEb3.js:43997:10) at async streamStep (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-BDFHZEb3.js:47449:109) at async fn (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-BDFHZEb3.js:47755:5) at async file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-BDFHZEb3.js:43834:19 错误原因: "[undefined]" 状态码: 400 请求路径: https://www.dmxapi.cn/v1/chat/completions 请求体: { "model": "Baichuan-M3-Plus", "user": "[undefined]", "max_tokens": "[undefined]", "temperature": 1, "top_p": 1, "frequency_penalty": "[undefined]", "presence_penalty": "[undefined]", "response_format": "[undefined]", "stop": "[undefined]", "seed": "[undefined]", "serviceTier": "[undefined]", "reasoning_effort": "[undefined]", "verbosity": "[undefined]", "messages": [ { "role": "user", "content": "你是谁" }, { "role": "user", "content": "你是谁" } ], "tools": "[undefined]", "tool_choice": "[undefined]", "stream": true, "stream_options": { "include_usage": true } } 响应首部: { "cache-control": "no-cache", "content-type": "text/event-stream", "date": "Mon, 23 Mar 2026 01:32:21 GMT", "document-policy": "include-js-call-stacks-in-crash-reports", "server": "nginx", "x-rixapi-request-id": "20260323093220202196687pXdtLfhB" } 响应内容: { "error": { "message": "The `messages.[1]` message role is repeated", "type": "rix_api_error", "param": "messages.[1].role", "code": null } } 数据: { "error": { "message": "The `messages.[1]` message role is repeated", "type": "rix_api_error", "param": "messages.[1].role", "code": null } }

🤖 AI解决方案

报错分析报告

1.错误翻译


``
原文:The
messages.[1] message role is repeated
译文:消息数组的第[1]条消息角色重复了
`

2.原因分析


  • 根本原因:请求中messages数组的第1条(索引1)消息与第0条消息的role均为user,违反API对消息角色唯一性的要求。

  • 具体位置:发送给DMXAPI的请求体messages字段(https://www.dmxapi.cn/v1/chat/completions),包含两个连续的{"role": "user", ...}对象。
  • 3. 解决方案


    删除重复的
    user角色消息,或修改角色确保不重复。以下是修复后的请求体片段:
    json
    {
    "messages": [
    {
    "role": "user",
    "content": "你是谁"
    }
    // 移除重复的第二条user消息,或调整为assistant等角色
    ]
    }

    4. 预防措施


  • 校验规则:发送请求前,检查messages数组中相邻元素的role是否重复,确保角色交替(如userassistantuser)。

  • -️ 工具推荐:使用[JSON Schema](https://json-schema.org/)定义请求体结构,通过[ajv](https://ajv.js.org/)等库自动验证格式;或在代码中添加角色重复性检查函数。

    ---
    总结:错误由
    messages数组中重复的user`角色触发,修正请求体即可解决。