Environment
- oMLX version: v0.3.7rc2
- Model:
mlx-community/Qwen3.6-35B-A3B-4bit
- Preset: qwen3.5/6 (r,code)
- TurboQuant: enabled
- SpecPrefill: enabled, draft model
qwen3-0.6B-4bit
- API: OpenAI-compatible
/v1/chat/completions
- Hardware: Apple Silicon (M-series)
Description
When using the Qwen 3.6 35B MoE model through the OpenAI-compatible API, the model consistently returns responses containing only reasoning_content (thinking) with no actual content field. This results in the downstream client (OpenClaw gateway) seeing an empty/thinking-only response and surfacing an "incomplete turn" error.
Qwen 3.5 35B MoE (Qwen3.5-35B-A3B-4bit) works correctly with the same configuration — it returns both reasoning_content and content in the response.
Observed behavior
The API response includes a choices[0].message with:
reasoning_content: populated (contains the model's internal thinking)
content: missing or empty
stop_reason: stop
This happens consistently across multiple prompts and session types — both direct chat and embedded/automated runs. Switching from "thinking" mode to "instruct" mode did not resolve the issue (response came back as completely empty content: []).
Expected behavior
The model should produce a content field with the actual response text, similar to how Qwen3.5-35B-A3B-4bit behaves under the same preset and server configuration.
Steps to reproduce
- Load
mlx-community/Qwen3.6-35B-A3B-4bit with the qwen3.5/6 preset, turboquant, and specprefill (draft: qwen3-0.6B-4bit)
- Send a chat completion request via the OpenAI-compatible API endpoint
- Observe the response —
reasoning_content is populated but content is empty/missing
Comparison data
| Model |
Response types |
Has visible text |
Qwen3.5-35B-A3B-4bit |
['thinking', 'text'] |
✅ Yes |
Qwen3.6-35B-A3B-4bit |
['thinking'] or [] |
❌ No |
Additional context
- The same oMLX instance serves both 3.5 and 3.6 models — only the model swap triggers the issue.
- Tested with multiple prompts, different sessions, and both thinking/instruct modes — same result every time.
- The 3.6 model appears to be generating correctly internally (the thinking block has content), but the final answer never makes it to the
content field.
Is anyone else seeing this with Qwen 3.6 MoE models? Could this be a chat template / tokenizer mismatch for the 3.6 series?
Environment
mlx-community/Qwen3.6-35B-A3B-4bitqwen3-0.6B-4bit/v1/chat/completionsDescription
When using the Qwen 3.6 35B MoE model through the OpenAI-compatible API, the model consistently returns responses containing only
reasoning_content(thinking) with no actualcontentfield. This results in the downstream client (OpenClaw gateway) seeing an empty/thinking-only response and surfacing an "incomplete turn" error.Qwen 3.5 35B MoE (
Qwen3.5-35B-A3B-4bit) works correctly with the same configuration — it returns bothreasoning_contentandcontentin the response.Observed behavior
The API response includes a
choices[0].messagewith:reasoning_content: populated (contains the model's internal thinking)content: missing or emptystop_reason:stopThis happens consistently across multiple prompts and session types — both direct chat and embedded/automated runs. Switching from "thinking" mode to "instruct" mode did not resolve the issue (response came back as completely empty
content: []).Expected behavior
The model should produce a
contentfield with the actual response text, similar to howQwen3.5-35B-A3B-4bitbehaves under the same preset and server configuration.Steps to reproduce
mlx-community/Qwen3.6-35B-A3B-4bitwith the qwen3.5/6 preset, turboquant, and specprefill (draft: qwen3-0.6B-4bit)reasoning_contentis populated butcontentis empty/missingComparison data
Qwen3.5-35B-A3B-4bit['thinking', 'text']Qwen3.6-35B-A3B-4bit['thinking']or[]Additional context
contentfield.Is anyone else seeing this with Qwen 3.6 MoE models? Could this be a chat template / tokenizer mismatch for the 3.6 series?