KiCad ERC Error Reference
Analyze your ERC report
Paste the output of kicad-cli sch erc (plain text or --format json), the report saved from the ERC dialog, or even a single violation line. You get every violation grouped by type, linked to its reference page.
All KiCad ERC errors
48 violation types across KiCad 9 and 10 — 18 written up so far, the rest are in progress. Checks that exist in only one version are marked.
Power
| Error | Default severity | Summary |
|---|---|---|
Ground pin not connected to ground net KiCad 10 onlyground_pin_not_ground | warning | KiCad 10 warning: a GND-named power pin sits on a non-ground net while another pin of the same symbol is grounded. Rewire the pin or rename the net. |
Input Power pin not driven by any Output Power pinspower_pin_not_driven | error | Every net with a power input pin must also contain a power output pin to drive it. Power symbols like +5V and GND are inputs, not drivers, so a net fed from a connector or battery trips this error until you add a PWR_FLAG. |
Power pins are similar (lower/upper case difference only)similar_power | warning | Two power symbols name what looks like one rail with different letter case (VCC vs Vcc), so KiCad keeps two separate nets. Rename to one spelling. |
Symbol has power input pins that are not placedmissing_power_pin | error | A multi-unit symbol's power unit was never placed, so its supply pins connect to nothing. Place the unit ERC names (LM324: unit E) and wire it. |
Connections
| Error | Default severity | Summary |
|---|---|---|
A pin with a "no connection" flag is connectedno_connect_connected | warning | The net under a no-connect flag reaches more than one pin — usually a stale flag on a pin that got wired later. Delete the flag or the wire, not both. |
Bus Entry needed (coming soon)bus_entry_needed | error | |
Four connection points are joined together (coming soon)four_way_junction | ignore | |
Input pin not driven by any Output pinspin_not_driven | error | The net has an Input pin but no driver: no Output, Bidirectional, Tri-state, Power output, or Passive pin. Usually the net isn't reaching its real driver. |
Label connects more than one wirelabel_multiple_wires | warning | The label anchor sits on a wire crossing, so it attaches to one wire chosen arbitrarily. Move it onto the wire it names, or junction the crossing. |
Pin name resembles stacked pin (coming soon) KiCad 10 onlystacked_pin_name | warning | |
Pin not connectedpin_not_connected | error | Every pin must join a net or carry a no-connect flag. Press Q to flag intentionally open pins; otherwise the wire is not landing on the pin end. |
Symbol pin or wire end off connection gridendpoint_off_grid | warning | A pin or wire end is off the 50 mil connection grid, usually after an import or fine-grid editing. Select all, Align Items to Grid, re-run ERC. |
Unconnected "no connection" flagno_connect_dangling | warning | A no-connect flag sits on nothing — no pin, no label. Usually left behind after a symbol was moved or deleted. Delete it, or snap it onto the pin end. |
Unconnected wire endpointunconnected_wire_endpoint | warning | A wire end that connects to nothing, usually a leftover stub. Delete or complete it; a net label clears it only if anchored on the free endpoint. |
Wires not connected to anythingwire_dangling | error | A run of wires that touches no pin, label, or sheet pin anywhere. Usually a leftover stub or a wire that stops short of its pin; reconnect or delete it. |
Labels
| Error | Default severity | Summary |
|---|---|---|
Global label not connected anywhere else in the schematic KiCad 9 only (removed in 10)global_label_dangling | warning | KiCad 9 warns when a global label's net reaches no other pin. Usually the matching label elsewhere is missing or misspelled; make the names match. |
Global label only appears once in the schematic (coming soon)single_global_label | ignore | |
Label connected to only one pin (coming soon) KiCad 10 onlyisolated_pin_label | warning | |
Label not connectedlabel_dangling | error | The label's anchor point is not on a wire or pin, or its net reaches no pins. Move the label so its anchor square sits on the wire, then re-run ERC. |
Labels are similar (lower/upper case difference only) (coming soon)similar_labels | warning | |
Local and global labels have same name (coming soon)same_local_global_label | warning | |
More than one name given to this bus or net (coming soon)multiple_net_names | warning | |
Power pin and label are similar (lower/upper case difference only) (coming soon)similar_label_and_power | warning |
Conflicts
| Error | Default severity | Summary |
|---|---|---|
Buses are graphically connected but share no bus members (coming soon)bus_to_bus_conflict | error | |
Conflict between bus alias definitions across schematic sheets (coming soon)bus_definition_conflict | error | |
Conflict problem between pinspin_to_pin | error/warning (pin matrix) | Two driver pins share one net — often a PWR_FLAG landing on a net a regulator already drives. Remove the extra driver or fix the symbol's pin type. |
Duplicate pins with different nets (coming soon)duplicate_pins | error | |
Duplicate reference designators (coming soon)duplicate_reference | error | |
Invalid connection between bus and net items (coming soon)bus_to_net_conflict | error | |
Net is graphically connected to a bus but not a bus member (coming soon)net_not_bus_member | warning |
Symbol units
| Error | Default severity | Summary |
|---|---|---|
Different footprint assigned in another unit of the symbol (coming soon)different_unit_footprint | error | |
Different net assigned to a shared pin in another unit of the symboldifferent_unit_net | error | One physical pin drawn in two units of a symbol sits on two different nets. Wire every drawn copy of the shared pin — usually a power pin — to one net. |
Symbol has bidirectional pins that are not placed (coming soon)missing_bidi_pin | warning | |
Symbol has input pins that are not placed (coming soon)missing_input_pin | warning | |
Symbol has more units than are defined (coming soon)extra_units | error | |
Symbol has units that are not placed (coming soon)missing_unit | warning | |
Units of same symbol have different values (coming soon)unit_value_mismatch | error |
Symbols & libraries
| Error | Default severity | Summary |
|---|---|---|
Assigned footprint doesn't match footprint filters (coming soon)footprint_filter | ignore | |
Footprint link issue (coming soon)footprint_link_issues | warning | |
Library symbol issuelib_symbol_issues | warning | The symbol's library nickname isn't in your symbol library tables. Add the library under Preferences → Manage Symbol Libraries and re-run ERC. |
SPICE model issue (coming soon)simulation_model_issue | ignore | |
Symbol doesn't match copy in library (coming soon)lib_symbol_mismatch | warning |
Hierarchy & sheets
| Error | Default severity | Summary |
|---|---|---|
Duplicate sheet names within a given sheet (coming soon)duplicate_sheet_names | error | |
Mismatch between hierarchical labels and sheet pinshier_label_mismatch | error | A sheet pin and the hierarchical label inside the subsheet must have identical names, case included. Rename one side or run Sync Sheet Pins. |
Miscellaneous
| Error | Default severity | Summary |
|---|---|---|
Field name has leading or trailing whitespace (coming soon) KiCad 10 onlyfield_name_whitespace | warning | |
Symbol is not annotated (coming soon)unannotated | error | |
Undefined netclass (coming soon)undefined_netclass | error | |
Unresolved text variable (coming soon)unresolved_variable | error |
No errors match that filter. ERC messages vary slightly between KiCad versions — try a shorter fragment.
How ERC works in KiCad
ERC (Electrical Rules Check) runs after KiCad builds the netlist from your schematic. It walks every net and every symbol and applies two kinds of checks: structural ones (dangling wires, unconnected pins, labels that connect to nothing, annotation problems) and electrical ones driven by the pin conflict matrix, which compares the electrical type of every pin sharing a net — two outputs on one net is an error, an input with nothing driving it is another.
Each violation type has a default severity — error, warning, or ignore — and every one of them is configurable in Schematic Setup → Electrical Rules → Violation Severity. Individual violations can also be excluded from the ERC dialog (right-click → Exclude), which keeps them recorded in the schematic but out of your face. The severity defaults documented on this site are the ones shipped in KiCad 9 and 10, extracted from KiCad’s source code rather than copied from forum posts; where a check exists in only one of the two, or changed between them, the error’s page says so.
You can run ERC without opening the schematic editor: kicad-cli sch erc your-design.kicad_sch writes a plain text report, and --format json emits a machine-readable one — both formats are what the analyzer above understands. For the official documentation, see the Electrical Rules Checking chapter of the KiCad Schematic Editor manual for KiCad 9 or KiCad 10.