Diagnosing ComfyUI Task Failures
When facing a wall of failed tasks like the one above, don't inspect them one-by-one. Instead:
- Group failures by node/model type (e.g., "Flux2-Klein-9B双图编辑" vs "Minimax参考生视频V1")
- Check if failures are 100% for one model type — that points to a config/credential/version issue, not random flakiness
- Check run duration before failure — short (~1 min) vs long (~4 min) failures indicate different failure stages (input validation vs. generation timeout)
- Pull the taskid of the most recent failure and inspect its full error log first — recent failures are most relevant to current state
Progress:
- Step 1: Categorize all failed tasks by node type and run mode
- Step 2: Identify timing pattern (failures clustering at short duration = input/setup error; long duration = generation/API error)
- Step 3: Check for common root cause across a model type (all Minimax tasks failing but all Flux2-Klein succeeding suggests a Minimax-specific issue)
- Step 4: Inspect the preview/output node config — confirm output routing isn't silently failing (task succeeds but preview doesn't display)
- Step 5: Pull raw logs for 1-2 representative taskids per failure category
- Step 6: Check account/member status, API quotas, and credential expiry (common hidden cause)
- Step 7: Re-run one isolated test task per failing node type after fix
- Step 8: Confirm fix resolves failures before batch re-running queued tasks
Step-by-step diagnostic logic
1. Categorize by node type Separate failures into buckets:
Flux2-Klein-9B双图编辑(image editing, short duration ~50s-1min06s)Minimax参考生视频V1(video generation, long duration ~3min39s-4min54s)
2. Look at duration signature
- Flux2-Klein failures: consistently under 1min10s → likely failing early (bad input pair, missing second image, malformed prompt, or node connection issue) rather than mid-generation
- Minimax failures: consistently 3.5-5 min → likely failing late in generation (API timeout, content policy rejection, or backend service instability) — NOT an input problem
3. Check for total failure vs partial failure If every single task of a given type failed (as shown: 100% failure rate across ~20 consecutive tasks for both node types), this is a systemic issue:
- Expired/exhausted account credits or member status (note: "会员还有0天就到期啦" — membership expiring in 0 days is a strong candidate root cause)
- Backend service outage for that specific model
- Broken workflow template (someone edited/corrupted the node graph)
4. Cross-reference with account status The membership expiry banner ("会员还有0天就到期啦,续费继续畅快体验") appearing alongside mass task failures is the top suspect — expiring/expired membership commonly throttles or blocks Standard-mode task execution.
Example 1: Input: 20 consecutive tasks across two different node types, all failed, spanning ~1.5 hours, with a membership-expiry banner visible on the dashboard. Output: Diagnosis — account/membership issue is the primary suspect (renew membership first), not a per-node bug. Recommend: (1) renew/verify membership status, (2) re-run one test task per node type, (3) if still failing, escalate to per-node config check.
Example 2:
Input: Only Flux2-Klein-9B双图编辑 tasks fail (all ~1 min duration), while Minimax参考生视频V1 tasks succeed.
Output: Diagnosis — isolate to Flux2-Klein node config. Check that both required input images are attached and correctly linked; check prompt field isn't empty; check model version selector matches an active/available model.
Example 3: Input: Preview node shows no output but task list shows "任务失败" is absent (task technically succeeded). Output: This is a display/routing bug, not a generation failure — check the preview node's input connection and output slot binding, not the generation node itself.
- Always check account/membership/credit status FIRST when failure rate is 100% across multiple unrelated node types — it's the most common shared cause and cheapest to rule out
- Use failure duration as a diagnostic signal, not just the failure flag itself
- Don't batch-retry all failed tasks blindly — fix root cause, test with one task per type, then batch retry
- Keep a mapping of node type → expected duration range, so anomalies are easy to spot at a glance
- Note the run mode (Lite/Standard/Ultra) — failures isolated to one mode point to mode-specific quota/routing issues
- Don't assume every failure needs individual log inspection — pattern-match first, drill down second
- Don't ignore dashboard banners (membership expiry, quota warnings) — they're often the actual cause of "mysterious" mass failures
- Don't conflate "task failed" with "output not displayed" — these are different bug classes requiring different fixes
- Don't retry the exact same failing config repeatedly hoping it resolves itself when the pattern shows systemic (not transient) failure