Qwen3 → Qwen3.7 Migration Guide: What Changes When qwen3-max Retires October 10
Five Qwen3 mainline models — qwen3-max, qwen3-max-preview, qwen3.6-max-preview, qwen3-coder-plus, and qwen3-vl-flash — retire on October 10, 2026, replaced by the Qwen3.7 generation. We mapped every retiring model to its drop-in replacement, compared pricing and capabilities, wrote the code diffs, and built a migration checklist.
Update 2026-10-17: Alibaba retired qwen3-max, qwen3.6-max-preview, qwen3-coder-plus and qwen3-vl-flash on 2026-10-10, and TheRouter no longer serves them. Code examples below now use the live successors (qwen/qwen3.7-max, qwen/qwen3.7-plus, qwen/qwen3.7-flash). On TheRouter, qwen3.6-flash is text-only; for image input use qwen/qwen3.7-flash.
Qwen3 → Qwen3.7 Migration Guide: What Changes When qwen3-max Retires October 10
On October 10, 2026 at 00:00 CST, Alibaba Cloud will shut down five Qwen3-generation mainline models on DashScope (Bailian): qwen3-max, qwen3-max-preview, qwen3.6-max-preview, qwen3-coder-plus, and qwen3-vl-flash. After that moment, API calls to these model IDs return errors — no grace period, no degraded mode (Official notice #118344, published 2026-06-08; Model deprecation page, retrieved 2026-07-13).
This is a generational upgrade, not a simple model swap. The Qwen3.7 replacements bring a 1M-token context window, native multimodal support in the Max tier, and unified thinking/non-thinking modes — but also higher per-token prices at short context lengths. This guide covers the exact replacement mapping, capability deltas, code migration, pricing impact, and the gotchas that will bite you if you switch without reading the fine print.
We route OpenAI-compatible requests through configured providers and support provider/model routing and fallback where the live product path supports it. We do not claim universal model support, zero downtime, or guaranteed cheapest pricing.
- Swap three values, not three SDKs. Change
api_key,base_url, andmodelin the existing OpenAI client. Keep your request/response code unchanged. - Map model IDs explicitly. The target provider's model id is almost never identical to the OpenAI id. Keep a single dict of
{ openai_id: target_id }outside business logic. - Verify streaming format. SSE chunks must follow the OpenAI
data: {...}+data: [DONE]contract. Test one streaming call before moving production traffic. - Check rate-limit headers. Some providers omit
x-ratelimit-*headers. Add a wrapper that defaults safely when headers are absent. - Keep a rollback path. Ship the swap behind a feature flag, run both endpoints in shadow for 24 hours, then cut over.
Models Being Retired and Their Replacements
| Retiring Model | Category | Replacement | Context Window Change | Status |
|---|---|---|---|---|
qwen3-max | Qwen Max (flagship) | qwen3.7-max | 256K → 1M | Active |
qwen3-max-preview | Qwen Max (preview) | qwen3.7-max | 256K → 1M | Active |
qwen3.6-max-preview | Qwen Max (preview) | qwen3.7-max | 256K → 1M | Active |
qwen3-coder-plus | Qwen Coder | qwen3.7-plus | 1M → 1M | Active |
qwen3-vl-flash | Qwen VL (vision) | qwen3.6-flash | — | Active |
All replacements are designated by Alibaba's official deprecation notice and are already live on DashScope. You can start testing today (Model deprecation mechanism, retrieved 2026-07-13).
Important: Starting from the deprecation notice date, DashScope may gradually reduce QPM and TPM quotas for retiring models before the final cutoff. If you have expanded rate limits, those get reset to defaults first.
Capability Delta — What's New in Qwen3.7
The Qwen3.7 generation is architecturally redesigned for agentic workloads. Here is what changes for each replacement pair:
qwen3-max → qwen3.7-max
| Dimension | qwen3-max | qwen3.7-max |
|---|---|---|
| Context window | 256K (tiered pricing) | 1M (flat-rate) |
| Multimodal | Text-only | Text + image (since June 8 snapshot) |
| Thinking mode | Both (thinking + non-thinking) | Both |
| Batch API | 50% off | 50% off |
| Context cache | Supported | Supported |
| Agentic capability | Standard | Enhanced — 35-hour autonomous coding runs, long-horizon task planning |
Qwen3.7-Max was specifically designed as an "agent frontier" model. It excels at coding tasks (frontend to backend), automating office workflows, and planning multi-step operations (Qwen3.7 announcement, published 2026-05-19). The multimodal upgrade (June 8 snapshot) adds high-resolution image understanding with support for ultra-high pixel resolutions.
qwen3-coder-plus → qwen3.7-plus
| Dimension | qwen3-coder-plus | qwen3.7-plus |
|---|---|---|
| Context window | 1M | 1M |
| Thinking mode | Both | Both |
| Scope | Code-specialized | General-purpose Plus tier |
| Context cache | Supported | Supported |
Note that qwen3.7-plus is a general-purpose model, not a code-specialized one like qwen3-coder-plus. Alibaba positions the entire Qwen3.7 generation as capable of agentic coding without needing a dedicated coder model. If you relied on code-specific optimizations in qwen3-coder-plus, benchmark your workloads against qwen3.7-plus before migrating.
qwen3-vl-flash → qwen3.6-flash
| Dimension | qwen3-vl-flash | qwen3.6-flash |
|---|---|---|
| Context window | — | 1M (tiered) |
| Thinking mode | — | Both |
| Vision | Dedicated VL model | Unified text + vision |
| Context cache | — | Supported |
qwen3.6-flash is a unified model that handles both text and vision. It replaces the dedicated qwen3-vl-flash with a single endpoint. This simplifies your codebase — one model ID handles text-only and vision requests.
Before/After Code Diff (OpenAI SDK)
All DashScope models use the OpenAI-compatible interface. The migration is a model ID swap in your existing code (DashScope OpenAI compatibility, retrieved 2026-07-13):
qwen3-max → qwen3.7-max
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
# Before
response = client.chat.completions.create(
- model="qwen3-max",
+ model="qwen3.7-max",
messages=[{"role": "user", "content": "Explain quantum computing"}],
)
# After — same code, new model ID
qwen3-coder-plus → qwen3.7-plus
# Before
response = client.chat.completions.create(
- model="qwen3-coder-plus",
+ model="qwen3.7-plus",
messages=[{"role": "user", "content": "Refactor this function..."}],
)
qwen3-vl-flash → qwen3.6-flash
# Before (vision request)
response = client.chat.completions.create(
- model="qwen3-vl-flash",
+ model="qwen3.6-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}],
)
That's it. The API surface — request format, response schema, streaming behavior — is identical. No SDK upgrade needed. No endpoint change.
Pricing Changes
This is where the generational upgrade hurts. The Qwen3.7 models are more expensive at short context lengths but competitive (or cheaper) for long-context workloads.
qwen3-max vs qwen3.7-max (China Mainland, per 1M tokens)
| Input Context | qwen3-max Input | qwen3.7-max Input | qwen3-max Output | qwen3.7-max Output |
|---|---|---|---|---|
| ≤32K | ¥2.50 | ¥12 (¥6 promo) | ¥10 | ¥36 (¥18 promo) |
| 32K–128K | ¥4 | ¥12 (¥6 promo) | ¥16 | ¥36 (¥18 promo) |
| 128K–256K | ¥7 | ¥12 (¥6 promo) | ¥28 | ¥36 (¥18 promo) |
| 256K–1M | N/A | ¥12 (¥6 promo) | N/A | ¥36 (¥18 promo) |
At promotional pricing (50% off, time-limited): qwen3.7-max input costs ¥6/1M — still 2.4× the cost of qwen3-max's cheapest tier (¥2.50 at ≤32K). But for 128K+ context, the promotional rate undercuts qwen3-max's tier 3 pricing.
At full price: qwen3.7-max is 4.8× more expensive for short prompts. Plan accordingly.
(Model pricing, retrieved 2026-07-13.)
qwen3-coder-plus → qwen3.7-plus (China Mainland, per 1M tokens)
| Metric | qwen3-coder-plus | qwen3.7-plus |
|---|---|---|
| Input (≤256K) | Similar to Plus tier | ¥2 (¥1.60 promo) |
| Output non-thinking (≤256K) | Similar to Plus tier | ¥8 (¥6.40 promo) |
| Output thinking (≤256K) | Similar to Plus tier | ¥8 (¥6.40 promo) |
qwen3-coder-plus pricing was not individually published — it was listed at the Plus tier. qwen3.7-plus is priced in the same range with promotional discounts active.
qwen3-vl-flash → qwen3.6-flash (China Mainland, per 1M tokens)
| Metric | qwen3.6-flash |
|---|---|
| Input (≤256K) | ¥1.20 |
| Output (≤256K) | ¥7.20 |
| Input (256K–1M) | ¥4.80 |
| Output (256K–1M) | ¥28.80 |
(Model pricing, retrieved 2026-07-13.)
Gotchas — What Will Bite You If You Don't Test
1. Thinking Mode Default Behavior
Both qwen3-max and qwen3.7-max support thinking and non-thinking modes. However, the default behavior may differ between generations. If your application explicitly relies on enable_thinking=false or enable_thinking=true, verify that your parameter passes through correctly after the model swap.
2. Context Length Pricing Shift
If you're running short-context workloads (≤32K tokens) at volume, the cost jump from ¥2.50 to ¥12 (or ¥6 with promo) per million input tokens is significant. Consider:
- Batching: Both models support Batch API at 50% off. For non-latency-sensitive workloads, batch mode halves the cost.
- Context caching: Both support DashScope's context cache. For repeated system prompts, cache hits reduce input token costs.
- Downgrading: If
qwen3.7-maxis overkill for simple tasks, considerqwen3.7-plus(¥2/1M input) orqwen3.6-flash(¥1.20/1M input) instead.
3. qwen3-coder-plus → General-Purpose Model
qwen3.7-plus is not a dedicated coding model. It's the general-purpose Plus tier that Alibaba positions as capable of coding tasks thanks to the Qwen3.7 architecture improvements. If you have benchmarks comparing qwen3-coder-plus against alternatives on your specific code tasks, re-run those benchmarks with qwen3.7-plus before committing.
4. qwen3.6-max-preview Has No Direct Equivalent Preview
qwen3.6-max-preview users are directed to qwen3.7-max (the stable mainline), not to a preview. If you were using the preview channel to get access to the latest capabilities ahead of GA, note that qwen3.7-max is already the GA version.
5. Tiered vs Flat-Rate Pricing Mental Model
qwen3-max used tiered pricing (cheaper for short context, more expensive for long). qwen3.7-max uses flat-rate pricing regardless of input length. This means your cost optimization strategies need to change — you no longer benefit from keeping prompts short, but you no longer get penalized for going long.
Routing via TheRouter — Automatic Fallback Configuration
If you route DashScope requests through TheRouter, you can set up fallback routing that automatically redirects the old model IDs to their replacements. This lets you:
- Test before the deadline — Route a percentage of traffic to the new model while keeping the old one as primary
- Auto-cutover on sunset — When the old model starts returning errors, TheRouter's fallback routing kicks in and redirects to the replacement
Example configuration for qwen3-max → qwen3.7-max fallback:
{
"model": "qwen/qwen3.7-max",
"fallbacks": ["qwen/qwen3.7-max"]
}
We support provider/model routing and fallback when the live product path supports it. Check the models page and models page for current availability.
The same pattern works for all three retiring families:
| Primary (retiring) | Fallback (replacement) |
|---|---|
| qwen/qwen3-max (retired) | qwen/qwen3.7-max |
| qwen/qwen3-coder-plus (retired) | qwen/qwen3.7-plus |
| qwen/qwen3-vl-flash (retired) | qwen/qwen3.6-flash |
OpenAI-compatible means a provider exposes a chat-completions endpoint whose request and response shape matches the OpenAI API contract closely enough that an unmodified OpenAI SDK call works against it after swapping three values: API key, base URL, and model name. The minimum surface in practice is POST /v1/chat/completions with messages, model, and an OpenAI-shaped streaming response.
Rollback Path
If the new models produce unacceptable results for your use case, you have options before October 10:
- Pin to snapshot:
qwen3-max-2026-01-23is the current underlying snapshot forqwen3-max. It retires on the same October 10 date, but during the transition window it gives you a stable target while you testqwen3.7-max. - Alternative providers: If
qwen3.7-maxdoesn't work for your use case, consider routing to alternative models via TheRouter — DeepSeek V4 (deepseek-chat), Claude Sonnet 5, or GPT-5.5 Pro, depending on your quality/cost requirements. - Downgrade within Qwen:
qwen3.7-plusat ¥2/1M input is 6× cheaper thanqwen3.7-maxat ¥12/1M. For many workloads, the Plus tier is sufficient.
Migration Checklist
- Identify affected models: Check your DashScope usage via Model Observability for any calls to
qwen3-max,qwen3-max-preview,qwen3.6-max-preview,qwen3-coder-plus, orqwen3-vl-flash - Swap model IDs in code: Replace each retiring model ID with its replacement (see mapping table above)
- Benchmark on your workloads: Run your existing test suite / eval set against the replacement models. Pay attention to code generation quality if migrating from
qwen3-coder-plus - Review pricing impact: Calculate cost delta based on your typical prompt lengths. Short-context workloads will see the biggest cost increase
- Verify thinking mode parameters: If you explicitly set
enable_thinking, confirm behavior is identical on the new models - Update rate limit expectations: Check if your expanded QPM/TPM allocations carry over (they likely don't — request new allocations for the replacement models)
- Configure fallback routing: If using TheRouter, set up
qwen3-max → qwen3.7-max(and equivalents) in your routing config - Set a calendar reminder: October 10, 2026 00:00 CST is a hard cutoff. Don't be debugging in production at midnight
- Monitor the deprecation page: DashScope may reduce quotas for retiring models before the deadline. Monitor the deprecation page for updates
FAQ
Q: Is this the same sunset as the September 8, 2026 announcement?
A: The original notice (#118344, published June 8) listed a September 8 sunset date. DashScope has since consolidated all sunset waves to October 10, 2026. The models are the same; only the deadline changed. (Model deprecation page, retrieved 2026-07-13.)
Q: Do I need to change my DashScope API key or base URL?
A: No. The API key, base URL, and request format are unchanged. Only the model parameter in your API calls needs updating.
Q: Will qwen3-max snapshots (e.g. qwen3-max-2026-01-23) also retire?
A: Yes. All qwen3-max snapshots are part of the October 10 sunset wave. The snapshots are listed in a separate notice (#118345) but share the same deadline.
Q: Can I use qwen3.7-max as a drop-in replacement for qwen3.6-max-preview?
A: Yes. qwen3.6-max-preview → qwen3.7-max is the official replacement. qwen3.7-max is the GA release and supersedes all Max-tier previews.
Q: What about qwen3-max-preview? Is there a new preview channel?
A: qwen3.7-max-preview exists as a thinking-only preview. If you need both thinking and non-thinking modes, use qwen3.7-max (the mainline), which supports both.