Skip to content

Qwen3.6-35B-A3B-4bit returns thinking-only responses with no visible content via OpenAI-compatible API #903

Description

@jsirish

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

  1. Load mlx-community/Qwen3.6-35B-A3B-4bit with the qwen3.5/6 preset, turboquant, and specprefill (draft: qwen3-0.6B-4bit)
  2. Send a chat completion request via the OpenAI-compatible API endpoint
  3. 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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions