★ Reading this for free? Get 25 structured AI courses + per-chapter AI tutor — the first chapter of every course free, no card.Start free in 30 secondsOr own every course: $149 once
Image Generation

ComfyUI Error Messages: What Each One Means

October 4, 2026
13 min read
Local AI Master Research Team

Want to go deeper than this article?

Free account unlocks the first chapter of all 25 courses — RAG, agents, MCP, voice AI, MLOps, real GitHub repos.

📚AI Learning Path

Generating images locally? Take it further. From FLUX and ComfyUI setup to building real image pipelines and apps. First chapter free, no card.

Start free
Or own it for life — Lifetime $149, pay once

Search this page for your exact string — but read one line of your own log first. "Node threw an error during execution." is not an error message. It is a fixed label from ComfyUI's frontend locale file, printed above every runtime failure, and the real message is the Exception Message field in the ComfyUI Error Report underneath it. Once you have that string, the fix is decided by which of four stages produced it: validation (nothing ran yet), model loading, sampling, or the memory and quantisation layer.

Most ComfyUI errors are too small to deserve their own article, but there are a lot of them, and the wording is specific enough that you can identify the failing subsystem from the string alone. That is what this page is for: a lookup table you can Ctrl+F, one line per string, linking out to the deep pages where a cause genuinely needs a thousand words.

How every row here is sourced. Each string is either quoted from the ComfyUI source line that raises it, or from a numbered issue on the tracker where somebody reported it verbatim. Source lines were read from the repository at commit 924743a (23 August 2026), which reports __version__ = "0.33.0" in comfyui_version.py. Nothing on this page is a reconstruction from memory, and where a string comes from a bug report rather than the source, the row says so and links the issue so you can check whether it has been closed since.

Error text drifts between releases. ComfyUI rewords its messages fairly often, so if your string is close to a row here but not identical, you are almost certainly in the right place with a different version. The find-it-yourself section at the bottom shows how to locate the exact line in your own install in about ten seconds.

Read the Error Report Before the Table

When a node fails at runtime, ComfyUI shows a red banner and a structured block that begins # ComfyUI Error Report. The banner text is generic. The block is the diagnosis.

# ComfyUI Error Report
## Error Details
- **Node ID:** 433
- **Node Type:** CLIPTextEncode
- **Exception Type:** ValueError
- **Exception Message:** ValueError: not enough values to unpack (expected 4, got 1)

That is quoted from issue #15797, whose title is — inevitably — "Node threw an error during execution." The reporter pasted the banner as the problem. The actual problem is four lines lower, in a completely different node than the banner suggests to most readers.

The banner string lives in ComfyUI_frontend's English locale file, alongside its longer sibling, "This node threw an error during execution. Check its inputs or try a different configuration." Both are static UI copy. Neither is produced by the code that failed.

So the reading order is: Exception Type and Exception Message first, Node Type second, stack trace third. The tables below are keyed on that Exception Message.

Reading articles is good. Building is better.

Free account = the first chapter of all 25 courses, with a per-chapter AI tutor. No card.

Errors That Fire Before Anything Runs

These are validation failures. ComfyUI rejects the graph before executing a single node, which is why they appear instantly with no progress bar and no VRAM movement. Every one of them is raised in execution.py, and they arrive wrapped in a single umbrella message.

Error stringWhat it meansWhat to doRaised at
Prompt outputs failed validationThe umbrella message for the whole group. It never appears alone.Read the indented line beneath it — that line is one of the rows below.execution.py:1240
Node 'ID #98:17' has no class_type. The workflow may be corrupted or a custom node is missing.A node in the saved JSON carries no node type at all, so ComfyUI cannot even look it up.Re-export the workflow from its original source rather than repairing the JSON by hand.execution.py:1136, #15118
Node 'NAME' not found. The custom node may not be installed.The type is named in your JSON but nothing registered it at startup.Either the pack is not installed, or it is installed and failed to import — see the IMPORT FAILED triage.execution.py:1153
Required input is missingA required socket has neither a link nor a widget value.Connect the named input. Frequently caused by deleting a node upstream.execution.py:906
Return type mismatch between linked nodesAn output of one type is wired into an input expecting another.Follow the link colour; usually a LATENT into an IMAGE socket or vice versa.execution.py:941
Value not in list: ckpt_name: 'v1-5-pruned-emaonly-fp16.safetensors' not in []The dropdown value in the workflow is not among the files ComfyUI found.Empty brackets are the tell — they mean ComfyUI found zero files in that folder, so this is a path problem, not a missing model.execution.py:1071, #11452
Failed to convert an input value to a INT valueA widget holds something that will not parse as the declared type.Check for a stray character in a numeric field, or a primitive node feeding a string.execution.py:1007
Value 0 smaller than min of 1A widget is below the node's declared minimum.Raise it. Common after a node update tightens its bounds.execution.py:1023
Value 4096 bigger than max of 2048The mirror of the above, above the declared maximum.Lower it, or use a node built for the larger range.execution.py:1036
Dependency cycle detectedThe graph contains a loop, so no execution order exists.Find the link that feeds a node's own ancestor; usually an accidental drag.execution.py:861
Bad linked input, must be a length-2 list of [node_id, slot_index]A link in API-format JSON is malformed.You are almost certainly generating the prompt from a script — fix the emitter, not the graph.execution.py:921
Prompt has no outputsNothing in the graph terminates in an output node.Add a SaveImage or PreviewImage. Common when driving ComfyUI over the API.execution.py:1170
Custom validation failed for nodeThe node's own VALIDATE_INPUTS method rejected the inputs.The reason is node-specific; read the details field and the pack's documentation.execution.py:1102
Exception when validating nodeThe node's VALIDATE_INPUTS method itself crashed.This is a bug in the custom node, not in your graph. Report it upstream.execution.py:1193

The practical shortcut for this whole table: if the failure is instant and your GPU never spun up, it is a validation error, and the fix is in the workflow or the folder layout rather than in your hardware or flags.

Errors From Loading a Model File

These fire after validation passes, while a loader node reads a file off disk. The distinguishing feature is that they name a path.

Error stringWhat it meansWhat to doRaised at
ERROR: Could not detect model type of: PATHComfyUI parsed the file but no architecture matched its tensor keys.Usually the right file in the wrong folder — a LoRA, VAE or text encoder sitting in checkpoints.comfy/sd.py:2092 for checkpoints, :2360 for diffusion models, #8438
HINT: This seems to be a Lora file and Lora files should be put in the lora folder and loaded with a lora loader node..Not a separate error — an extra line ComfyUI appends to the message above when the filename contains "lora".Move the file to models/loras and use a LoRA loader.comfy/sd.py:2058
Error while deserializing header: MetadataIncompleteBuffer followed by The safetensors file is corrupt/incomplete. Check the file size and make sure you have copied/downloaded it correctly.Usually a truncated download — but the message overstates its case.Check the byte size against the source first. #15599 (closed) documents an intact file with a few trailing bytes failing only when DynamicVRAM is active, because that path uses a stricter parser.comfy/utils.py:91
The safetensors file is corrupt or invalid. Make sure this is actually a safetensors file and not a ckpt or pt or other filetype.The file does not have a safetensors header at all.Frequently an HTML error page saved under a .safetensors name by a failed download. Open it in a text editor.comfy/utils.py:87
Cannot import PATH module for custom nodes: ...A custom node package raised during import at startup; its nodes will be missing from the graph.This is the console line behind the red IMPORT FAILED tile — how to read the real traceback.nodes.py:2336
UnicodeDecodeError: 'utf-32-be' codec can't decode byte 0x00 in position 28: truncated dataNot a corrupt file. An all-zero comfy_quant placeholder tensor is fed to json.loads, which guesses the encoding from leading NUL bytes and picks utf-32-be.Reported against the official MiniMax H3 nvfp4-awq text encoder; wait for the fix rather than re-downloading.#15400

Two of these six are worded as though your file is broken when it is not, which is why "re-download the model" is such a common piece of bad advice in this category. Check the file size before you spend an hour on a 15GB download.

Errors Raised While Sampling

These appear after the progress bar starts moving. The Node Type field in the error report tells you which node stopped, but with sampling failures the cause is usually a mismatch introduced several nodes upstream.

Error stringWhat it meansWhat to doReported in
Node threw an error during execution.Static frontend copy, not an error.Read the Exception Message underneath it.ComfyUI_frontend locale, #15797
mat1 and mat2 shapes cannot be multiplied (512x2560 and 12288x4096)Two tensors met with incompatible inner dimensions — nearly always a text encoder or CLIP that does not belong to the diffusion model.Reload the encoder the model shipped with. Reported on Z-Image GGUF, Qwen-Image and Qwen-Image-Edit graphs.#12132, #12648, #9423
DoubleStreamBlock.forward() got an unexpected keyword argument 'attn_mask'Something patched the FLUX attention path with a signature the running core no longer matches.Almost always a stale custom node overriding attention. Disable node packs to find it.#6476, #6414
The size of tensor a (49) must match the size of tensor b (16) at non-singleton dimension 1A conditioning or latent tensor arrived with an unexpected shape.Check batch sizes and any node that concatenates conditioning.#7177, #9318
AttributeError: 'VAE' object has no attribute 'patcher'A VAE object built by an older loader lacks an attribute newer core code expects. Note the timing: it crashes after sampling finishes, during execution cache cleanup.Reported as ComfyUI 0.27.0 with ComfyUI-GGUF 1.1.10; both issues are closed, so update both.#14806, #14829
'VAE' object has no attribute 'vae_dtype'The same class of version skew, surfacing on VAEDecode instead.Update the node pack that supplied the VAE loader.#5508
Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the sameHalf the operation is on the GPU and half on the CPU, because offloading split a model mid-node.Reported on ImageUpscaleWithModel on a 4GB card; reduce tile size or free VRAM before the node runs.#15433
AssertionError: Torch not compiled with CUDA enabledYour PyTorch is a CPU-only build. Nothing about the workflow is wrong.Reinstall PyTorch with the CUDA index URL for your version.#3377, #7433

If your sampler completes with no error at all and hands you a pure black frame, that is a different failure with its own diagnosis — see why ComfyUI generates black images.

Own it instead of renting it

Run this on your own machine and stop paying every month

Pay once and keep it. No renewal, no per-token bill, and nothing you feed it ever leaves your hardware.

Errors From Memory Management and Quantised Weights

This is the newest and fastest-moving group, because ComfyUI's DynamicVRAM streaming layer and its quantisation kernels are both under active development. Expect these strings in particular to change.

Error stringWhat it meansWhat to doRaised at
RuntimeError: HostBuffer.read_file_slice failedThe pinned-memory streaming path failed to read weights from disk, and the failure cascades into a CUDA out-of-memory error that hides the cause.#14250 reports --disable-pinned-memory restoring a Wan 2.2 workflow with unchanged iteration speed. On #15255 a maintainer note says the underlying CUDA error was reported to NVIDIA and suggests --cuda-device 0 or --disable-pinned-memory.comfy/memory_management.py:70
ValueError: Unknown quantization format for layer model.layers.0.self_attn.q_projThe per-layer quantisation config resolved to None, so ComfyUI has no algorithm to apply.Means the file uses a format this build does not map. Try the vendor's other precision builds.comfy/ops.py:1156, #15400
ValueError: Unsupported quantization format: FORMATThe format was named and recognised, but this code path does not implement it.Distinct from the row above: there the name was missing, here it is present but unhandled.comfy/ops.py:1225
torch.OutOfMemoryError: Allocation on device 0 would exceed allowed memory. (out of memory)A plain allocation failure, though after the DynamicVRAM default changed it often appears on workflows that used to fit.If this started after an update rather than after a workflow change, see ComfyUI out of memory after an update.#13954, #10891

Note the shape of the first row: a disk-read failure that presents as an out-of-memory error. If you are chasing OOM on a machine that has obvious free VRAM, search your log upward for read_file_slice before you start lowering resolution.

Warnings People Paste as Errors

These are logging.warning calls, not exceptions. They print in yellow, scroll past during a normal successful load, and get pasted into bug reports as the cause of unrelated problems.

Log lineWhat it meansIs it your problem
clip missing: ['clip_l.logit_scale', 'clip_l.transformer.text_projection.weight']Keys the text encoder expected were absent from the state dict, so they keep their initialised values.Usually harmless and present on many working setups. Raised at comfy/sd.py:279; see #3161 and #10266.
lora key not loaded: KEYA key in the LoRA did not map onto any weight in the loaded model.A handful of lines is normal. Hundreds of lines means the LoRA was trained for a different base model, and it will have no visible effect. Raised at comfy/lora.py:93.
RuntimeWarning: invalid value encountered in castNumPy was handed NaN and cast it to an integer.This one matters. It is the single reliable tell for a black output. See the black image diagnosis.

The distinction is worth internalising, because two of the three above are noise and the third is the only clue you will get for a failure that produces no error at all.

How Do You Find Where Your Own Error Comes From

If your string is not on this page, you can find its origin faster than you can search for it. From your ComfyUI root:

grep -rn "shapes cannot be multiplied" --include="*.py" .

Three outcomes, and each one is informative:

  • A hit under comfy/ or in execution.py or nodes.py. It is a core message, and the surrounding lines usually tell you the condition that triggered it.
  • A hit under custom_nodes/. A node pack raised it. Take it to that pack's tracker, not ComfyUI's.
  • No hit at all. The message came from PyTorch, NumPy, safetensors or transformers. mat1 and mat2 shapes cannot be multiplied and Torch not compiled with CUDA enabled are both in this category — they are PyTorch strings that ComfyUI merely surfaces.

That third case explains why so much ComfyUI troubleshooting advice misses: people search the ComfyUI tracker for an error PyTorch raised, and the top results are twenty unrelated workflows that happened to hit the same shape mismatch.

Before filing anything, do the triage the issue template asks for and disable custom nodes. Every bug report quoted on this page opens with that checkbox, and it is the fastest way to split "ComfyUI is broken" from "one of my forty node packs is broken". If you are still assembling a working install, the complete ComfyUI guide covers the layout these errors keep referring to, and the general local-AI troubleshooting guide covers the driver and environment failures that sit underneath all of it.

Which ComfyUI Version Do These Strings Come From

Source line numbers and message text on this page were read from the ComfyUI repository at commit 924743a, dated 23 August 2026, with comfyui_version.py reporting 0.33.0. The permalinks in every table are pinned to that commit, so they will keep pointing at the right line even after the file changes.

Three caveats that will save you time:

  • Line numbers move constantly. Treat them as a starting point and grep for the string itself.
  • Wording changes between releases. Several of the validation messages here were reworded during the v0.3x series. If yours differs slightly, the row still applies.
  • Issue state changes. Issues linked above were open or closed as noted at the time of writing. Click through before you build a workaround into your workflow — several of these have already been fixed once.

Where a single string needed more than one sentence, it has its own page: IMPORT FAILED and missing nodes, out-of-memory after an update, black image output, and, for the quantisation rows, how GGUF, fp8 and Nunchaku builds differ.

Sources

🎯
AI Learning Path

Generating images locally? Take it further.

From FLUX and ComfyUI setup to building real image pipelines and apps. First chapter free, no card.

Or own it for life — Lifetime $149 $599, pay once
Once your hardware is sorted

Go from one-off images to a real workflow

The Local Image Generation course covers ComfyUI, SDXL and FLUX properly — plus 24 more courses on running AI on your own hardware.

$149 once unlocks everything, forever — about $0.27/chapter for life. Prefer to spread it out? Pro is $79/year (saves 27%) or $8.99/month.
Secure checkout by Lemon Squeezy — your card never touches this siteInstant access the moment you payFirst chapter of every course is free — try before you buy

Liked this? 25 full AI courses are waiting.

From fundamentals to RAG, agents, MCP servers, voice AI, and production deployment with real GitHub repos. First chapter free, every course.

Reading now
Join the discussion
TagsComfyUITroubleshootingError ReferenceDynamicVRAMQuantization

Local AI Master Research Team

Local AI Master writes hands-on courses and hardware guides for running AI on machines you own. Content is checked against current releases and corrected when readers tell us it is wrong.

Build Real AI on Your Machine

RAG, agents, NLP, vision, and MLOps - chapters across 25 courses that take you from reading about AI to building AI.

Want the structured version?

Hands-on courses on local AI, from $8.99 a month. The first chapter of each is free.

AI Learning Path
More on Local Image Generation
See the full Run FLUX.1 Locally guide.

Comments (0)

No comments yet. Be the first to share your thoughts!

📅 Published: October 4, 2026🔄 Last Updated: October 4, 2026✓ Manually Reviewed

Ready to Go Beyond Tutorials?

25 structured courses with hands-on chapters - build RAG chatbots, AI agents, and ML pipelines on your own hardware.

🎯
AI Learning Path

Go from reading about AI to building with AI

25 structured courses. Hands-on projects. Runs on your machine. Start free.

Or own it for life — Lifetime $149 $599, pay once

Was this helpful?

LM

Written by the Local AI Master Team

The team behind Local AI Master

We build Local AI Master around practical, testable local AI workflows: model selection, hardware planning, RAG systems, agents, and MLOps. The goal is to turn scattered tutorials into a structured learning path you can follow on your own hardware.

✓ Local AI Curriculum✓ Hands-On Projects✓ Open Source Contributor
📚
Free · no account required

Grab the AI Starter Kit — career roadmap, cheat sheet, setup guide

No spam. Unsubscribe with one click.

🎯
AI Learning Path

Generating images locally? Take it further.

From FLUX and ComfyUI setup to building real image pipelines and apps. First chapter free, no card.

Or own it for life — Lifetime $149 $599, pay once
Free Tools & Calculators