Skip to content

[Bug] M2-her chat completions API: messages 含高级角色 (user_system / group / sample_message_*) 时 100% 返回 HTTP 500 999-1000 #126

Description

@klarkxy

概述

M2-her 服务端在 messages 数组中包含任何「高级角色」时,100% 触发 HTTP 500 错误 unknown error, 999 (1000)

官方文档(platform.minimaxi.com/docs/guides/text-chat)明确支持以下角色:

  • role: "user_system"
  • role: "group"
  • role: "sample_message_user" / "sample_message_ai"

但服务端实际处理这些 role 时稳定报错。只有 system / user / assistant 三个基础角色能正常返回 200。

环境信息

  • 端点:https://api.minimaxi.com/v1
  • 模型:M2-her
  • 请求方式:OpenAI Python SDK / 直接 HTTPS 两种都复现
  • 发现时间:2026-06-01
  • request_id 示例:066d760ecbf38a76d782267fa10257c7066d68c23b703caa12cc5abfcbc1b801

复现步骤

正常情况:只用 3 个基础角色

curl https://api.minimaxi.com/v1/chat/completions \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "M2-her",
    "messages": [
      {"role": "system", "content": "你是小咪。必须用中文。"},
      {"role": "user", "content": "你好"}
    ],
    "max_completion_tokens": 80,
    "temperature": 0.7,
    "stream": true,
    "thinking": {"type": "disabled"}
  }'

HTTP 200,正常返回 SSE 流。

异常情况:加入 user_system

curl https://api.minimaxi.com/v1/chat/completions \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "M2-her",
    "messages": [
      {"role": "system", "content": "你是小咪。"},
      {"role": "user_system", "content": "我是冷淡的科学家"},
      {"role": "user", "content": "你好"}
    ],
    "max_completion_tokens": 80,
    "temperature": 0.5,
    "stream": true,
    "thinking": {"type": "disabled"}
  }'

HTTP 500,body 内容:

{"type":"error","error":{"type":"server_error","message":"unknown error, 999 (1000)","http_code":"500"},"request_id":"066d..."}

同样的错误会出现在 group / sample_message_user / sample_message_ai

只要 messages任意包含一个这些角色,就触发同一个 500。去掉就立刻 200。

测试组合(每个组合 n=3)

messages 包含 结果
system, user ✅ 200
system, user, assistant ✅ 200
system, user_system, user ❌ 500
system, group, user ❌ 500
system, user_system, group, user ❌ 500
system, sample_message_user, sample_message_ai, user ❌ 500

可复现性:每个组合都跑 3 次,没有任何偶发失败模式——失败完全由请求结构决定。

期望行为

官方文档,高级角色应该正常工作:

  • user_system:用于定义用户人设
  • group:用于场景上下文
  • sample_message_user / sample_message_ai:用于 few-shot 示例

实际行为

返回 HTTP 500,错误信息 unknown error, 999 (1000),没有任何可操作的细节,也没有 role 校验失败的明确报错。

影响范围

这导致按官方文档实现的 M2-her 角色扮演场景完全无法使用。任何遵循官方文档的代码(system + user_system + group + few-shot 样本)都会 100% 失败。

临时绕过方案

我们不得不降级到 OpenAI 兼容格式(只用 system / user / assistant),把 user_system / group / sample_message_* 内容拼成文本塞到 system prompt 里。能跑通,但失去高级角色的结构性优势(模型也可能因此无法很好地区分这些角色)。

已排除的可能原因

  • ❌ 不是 key 问题:基础角色用同一 key 正常 200
  • ❌ 不是网络问题:基础角色 200 说明网络通畅
  • ❌ 不是 prompt 内容问题:最小复现(只 2-3 条消息)也失败
  • ❌ 不是配额问题:账户余额充足,月内消耗正常
  • ❌ 不是偶发问题:每个组合 3 次都稳定复现

关联

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