You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
0.70.2 P0: Qwen3.5-35B-A3B-UD-IQ4_XS.gguf capability_match: no CUDA forward for qwen35moe (known failure in 0.70.1) #4665
Known failure shipped in 0.70.1 (aprender 0.70.1, candidate cc4463f) under C272 5b; P0 for 0.70.2. Not a regression: it fails the same way on v0.69.5-rc.1 (5660b08).
Model: Qwen3.5-35B-A3B-UD-IQ4_XS.gguf
Host(s): lambda
Check: capability_match
0.70.1 result: FAIL: this build has no CUDA forward for architecture 'qwen35moe' (named refusal)
Re-measure on current main (aprender-w4578): this is a named refusal for a missing architecture, not a GPU fallback. Proposed re-rule: refused-by-name, out of 0.70.2.
Binary:apr 0.70.1 (6192aa9b88), which is main at 6192aa9. Release build with --features cuda, sha256 prefix d8208cdfc6d3686a, run under the GPU lock.
GPU: RTX 4090.
Command:apr run Qwen3.5-35B-A3B-UD-IQ4_XS.gguf --prompt "What is 2+2? Answer with one number." --max-tokens 16 --trace gave rc=8:
error: Inference failed: Format error: Architecture 'qwen35moe' uses SSM/Gated Delta Net layers (detected tensor 'blk.0.ssm_a'). There is no CPU or GPU forward for architecture 'qwen35moe' with SSM tensors. Tracking issues: #3090 (GPU) and #3091 (CPU) — both implement the Qwen3.5 hybrid ('qwen35'), not this architecture.
The same refusal (rc=8) comes with --no-gpu. The load is refused before any backend is chosen, so there is no CUDA path that falls back here.
The wording has changed since 0.70.1 ("no CUDA forward") to "no CPU or GPU forward", which is accurate: neither forward exists.
Proposal: re-rule.
The refusal names the file's architecture, gives a clear error, and is deterministic. That is the "refuse the file by name" outcome #4664's ruling allows. Making the row OK needs a new qwen35moe forward, meaning MoE routing plus the Gated Delta Net layers on both CPU and GPU. That is an architecture feature, not a 0.70.2 P0 bug fix.
The proposed re-rule:
Mark the ladder row as a named refusal (red_model) rather than a P0 failure.
Re-ruled (release cop, 2026-10-05): refused-by-name for 0.70.2.
On main, apr run --gpu on this file exits 12 with the by-name refusal: "this build has no CUDA forward for architecture 'qwen35moe' ... This is a refusal, not a fallback". That is exactly what the existing red_unsupported["Qwen3.5-35B-A3B*.gguf"] key requires, so the ladder row reads RED-UNSUPPORTED rather than FAIL.
0.70.2 ships on a CRUX-smoke emergency scope (operator ruling C322, A1 and A2). This issue is refused for 0.70.2 and moves to milestone 0.71.0, with no per-issue contract edit. The 0.70.2 release notes name it as a known failure.
Folded into #5311 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch: fix/4665-qwen35moe-forward.
Activity
feat(cuda): qwen35moe CUDA forward — routed experts + gated shared ex…
contract(ladder): drop the qwen35moe red_unsupported key — the CUDA f…
docs(roadmap): GH-4665 acceptance criteria + measured ladder legs
evidence(GH-4665): commit both ladder receipts; the sign-off holds th…
audit(GH-4665): quorum round 2 AGREED — sonnet-5, gemini-3.1-pro-high…
noahgift commentedon Oct 5, 2026
Re-measure on current main (aprender-w4578): this is a named refusal for a missing architecture, not a GPU fallback. Proposed re-rule: refused-by-name, out of 0.70.2.
apr 0.70.1 (6192aa9b88), which ismainat 6192aa9. Release build with--features cuda, sha256 prefixd8208cdfc6d3686a, run under the GPU lock.apr run Qwen3.5-35B-A3B-UD-IQ4_XS.gguf --prompt "What is 2+2? Answer with one number." --max-tokens 16 --tracegave rc=8:--no-gpu. The load is refused before any backend is chosen, so there is no CUDA path that falls back here.Proposal: re-rule.
The refusal names the file's architecture, gives a clear error, and is deterministic. That is the "refuse the file by name" outcome #4664's ruling allows. Making the row OK needs a new qwen35moe forward, meaning MoE routing plus the Gated Delta Net layers on both CPU and GPU. That is an architecture feature, not a 0.70.2 P0 bug fix.
The proposed re-rule:
red_model) rather than a P0 failure.Agent: aprender-w4578
noahgift commentedon Oct 5, 2026
Re-ruled (release cop, 2026-10-05): refused-by-name for 0.70.2.
On main,
apr run --gpuon this file exits 12 with the by-name refusal: "this build has no CUDA forward for architecture 'qwen35moe' ... This is a refusal, not a fallback". That is exactly what the existingred_unsupported["Qwen3.5-35B-A3B*.gguf"]key requires, so the ladder row reads RED-UNSUPPORTED rather than FAIL.red_unsupportedcitation moves from 0.70.0: qwen35moe (Qwen3.5-35B-A3B hybrid SSM MoE) CUDA forward #3977 to qwen35moe (Qwen3.5-35B-A3B, hybrid Gated DeltaNet + MoE): CPU and CUDA forward #4801 in the next B6 fold.P0is removed. This issue stays open.Agent: aprender-w4578
noahgift commentedon Oct 7, 2026
0.70.2 ships on a CRUX-smoke emergency scope (operator ruling C322, A1 and A2). This issue is refused for 0.70.2 and moves to milestone 0.71.0, with no per-issue contract edit. The 0.70.2 release notes name it as a known failure.
noahgift commentedon Oct 14, 2026
Folded into #5311 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch:
fix/4665-qwen35moe-forward.Agent: aprender-clerk
noahgift commentedon Oct 14, 2026
Row moved: #5311 was split into named masters (TRIAGE-100 master naming), so this ticket's checklist row is now on #5327.
Agent: aprender-clerk