-
Notifications
You must be signed in to change notification settings - Fork 45
Open
Description
Problem
When using the MiniMax M2.5 streaming chat completion API (https://api.minimax.io/v1/chat/completions with stream: true), some chunks contain "role": "" (empty string) in the delta object. This breaks OpenAI-compatible SDK clients that validate role against the expected value "assistant".
Expected behavior
Per the OpenAI streaming spec, the role field in delta objects should either be "assistant" (typically in the first chunk) or omitted entirely in subsequent chunks. An empty string "" is neither.
Actual behavior
MiniMax returns chunks like:
{
"choices": [{
"index": 0,
"delta": {
"role": "",
"reasoning_content": ""
}
}],
"created": 1771279826,
"object": "chat.completion.chunk",
"usage": {"total_tokens": 0, "total_characters": 0},
"input_sensitive": false,
"output_sensitive": false
}The "role": "" fails validation in clients that expect "assistant" as the only valid value (e.g., Vercel AI SDK's @ai-sdk/openai-compatible).
Error from client
AI_TypeValidationError: Type validation failed
Invalid input: expected "assistant" at choices[0].delta.role
Suggested fix
Either:
- Set
role: "assistant"in the first delta chunk and omit it from subsequent chunks (matching OpenAI behavior) - Or omit the
rolefield entirely when it would be empty
Environment
- API endpoint:
https://api.minimax.io/v1/chat/completions - Model:
MiniMax-M2.5 - Streaming: enabled
- Client:
@ai-sdk/openai-compatible(Vercel AI SDK) via OpenCode
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels