What this error means
ERC works on the connectivity graph: every set of wires, junctions, pins, and labels that touch forms one group. For each group, KiCad looks for something that can drive or at least name the net — a symbol pin, a local, global, or hierarchical label, or a sheet pin. A group that contains wire segments (bus entries count as wires here) but none of those is flagged.
The violation is per group, not per segment: a chain of segments that
never reaches a pin is one violation, listing segments of the chain
under one marker — so deleting only the flagged segment leaves the rest
to flag again. The neighboring unconnected_wire_endpoint
warning looks at individual wire ends instead; a floating stub trips
both at once.
Common causes
1. The wire stops short of the pin it looks connected to
A wire end has to land exactly on the pin's connection point. Drawn on a different grid, or left behind when a symbol moved, it can look attached at normal zoom while missing by a fraction of a grid step. If nothing else on that run is a pin or a label, the whole run flags.
2. Leftover segments from moving or deleting parts
Delete a symbol and its wires stay behind; drag sections of a schematic around and short fragments get orphaned, sometimes hidden under a symbol body. This is the check working as intended.
3. Incomplete context: unannotated symbols, or a sheet opened by itself
With references still reading U?, connectivity is incomplete: a wire
correctly drawn between two pins of an unannotated symbol reports this
error, and kicad-cli sch erc gives no annotation warning at all —
only the GUI dialog says "Schematic is not fully annotated. ERC
results will be incomplete." Users have also reported connected wires
flagging when a child .kicad_sch is opened directly rather than
through its project.
How to fix it
Reroute or delete the flagged wire
- Open Inspect → Electrical Rules Checker and double-click the violation to jump to the wire group.
- If the run should connect: drag or redraw the end so it lands on the pin's connection point or another wire's endpoint, then re-run ERC.
- If it is debris: delete the whole run, checking under symbol bodies for short fragments.
Use when: The normal case: a few markers, each on a wire that misses its pin or serves no purpose.
Annotate, and run ERC from the full project
- Run Tools → Annotate Schematic… and assign references to every symbol.
- Open the project in the Project Manager and run ERC from there, not on a lone .kicad_sch opened directly.
- Re-run ERC; wires that flagged only because context was missing come back clean.
Use when: Wires you can see are attached still flag, or references end in `?`. Watch for this in CI: kicad-cli reports no annotation problem — it silently produces incomplete connectivity instead.
When it’s safe to exclude
Rarely. On a finished schematic a floating wire run is either debris (delete it) or a missed connection (fix it); excluding either buries a real problem behind a green arrow.
The one defensible case is a work-in-progress schematic with sections
you know are unwired; even then, leaving them red costs nothing. If you
do exclude, use right-click → Exclude this violation on individual
markers rather than downgrading wire_dangling in Schematic Setup →
Electrical Rules → Violation Severity, which would also hide the wire
that genuinely missed its pin.
Gotchas
- Putting a net label on a floating wire does not appease ERC. The label
becomes the net's name, and the error becomes
label_dangling("Label not connected to anything"), which is also an error by default. A name is not a connection. - Bus entries count as wire segments here, so a stranded bus entry can keep a "wire" violation alive after the wires around it are gone.
Minimal reproduction
Draw a wire in empty space, attach nothing to either end, and run ERC. The report shows:
[wire_dangling]: Wires not connected to anything
; error
@(101.60 mm, 101.60 mm): Horizontal Wire, length 12.70 mm
A lone stub also collects an unconnected_wire_endpoint warning per
loose end. The checked-in data/erc/samples/wire_dangling.kicad_sch
closes four segments into a rectangle instead, so the report contains
exactly this one violation, listing multiple segments under a single
marker. It embeds no symbols, so there are no missing-library warnings.
Rerouting the wire so both ends land on a symbol's pins drops the error
count to zero, verified on a modified copy.
Related errors
- Unconnected wire endpoint (reference page coming soon)
- Label not connected
- Pin not connected
- Symbol pin or wire end off connection grid
FAQ
ERC says my wires are not connected to anything, but they clearly are. What is going on?
Three usual suspects. The wire end misses the pin's connection point by a fraction of a grid step — zoom in hard and drag it until it snaps. The schematic has unannotated symbols (references ending in ?), which leaves connectivity incomplete and flags correctly drawn wires. Or the sheet was opened directly instead of through its project, which users report produces the same false alarm.
I put a net label on the wire. Why does ERC still complain?
A label attaches only if its anchor sits exactly on the wire; a label floating next to it changes nothing. If the label does attach but the wire still reaches no pins, the error does not go away — it turns into "Label not connected to anything" instead. A label names a net; it is not a connection to anything real.