NewAI Part GeneratorFree to get started
KICAD REFERENCE

KiCad DRC and ERC errors, explained

Every check KiCad 10 can report, with the exact message you see in KiCad and the type name kicad-cli writes to its reports. The common ones link to what they mean and how to fix them.

Check a whole project at once

The free online checker runs KiCad's DRC and ERC on an uploaded project and links every finding back to this reference.

Open the KiCad checker

DRC errors (PCB editor)

  • Missing connection between items — Why KiCad DRC lists unconnected items, including pads that only connect through a zone, and how to find and route the missing connections.
  • Items shorting two nets — KiCad's shorting items error means copper from two different nets touches.
  • Clearance violation — Why KiCad DRC reports a clearance violation between copper items, how KiCad picks the clearance it enforces, and how to fix or adjust it.
  • Board edge clearance violation — What KiCad's board edge clearance check measures, the fab minimums for routed and V-cut edges, and how to fix copper near Edge.Cuts.
  • Isolated copper fill — What KiCad's isolated copper warning means for zone fills and how the remove islands setting controls it.
  • Thermal relief connection to zone incomplete — What KiCad's starved thermal check counts, why a pad gets too few thermal spokes, and the settings that fix it.
  • Via is not connected or connected on only one layer — Why KiCad flags dangling vias, when a via connected on one layer is intentional (stitching, thermal), and how to clean up the rest.
  • Track has unconnected end — Why KiCad warns about tracks with an unconnected end, whether a dangling stub matters, and how to remove them in bulk.
  • Hole clearance violation — Why KiCad checks copper-to-hole clearance separately from copper clearance, and how to fix a hole clearance violation.
  • Drilled hole too close to other hole — KiCad's hole-to-hole check prevents drill breakage.
  • Track width — Why KiCad DRC reports a track width violation, where minimum track widths come from, and how to resize tracks across a board.
  • Annular width — What the annular width error means in KiCad, why fabs need a minimum annular ring, and how to size pads and vias to pass.
  • Hole size out of range — Why KiCad reports hole size out of range, how the minimum through-hole setting works, and the drill sizes common fabs accept.
  • Via diameter — What triggers KiCad's via diameter error and how to resize vias across the whole board at once.
  • Courtyards overlap — What the KiCad courtyards overlap error means, when two footprints really are too close, and how to exclude intentional overlaps.
  • Board has malformed outline — What makes a KiCad board outline malformed (gaps, overlaps, self-intersection) and how to find and close the gap in Edge.Cuts.
  • Footprint not found in libraries — Why KiCad DRC says a footprint was not found in the libraries, how library tables work, and when the warning is harmless.
  • Solder mask aperture bridges items with different nets — Why KiCad flags solder mask openings that expose two nets, how mask web width works, and when bridged apertures are fine.
  • Silkscreen clipped by solder mask — Why KiCad warns that silkscreen is clipped by solder mask openings, what the fab does with it, and how to tidy reference designators.
  • Silkscreen clearance — What the KiCad silkscreen clearance warning checks and how to stop reference designators overlapping.
  • Text height out of range — Minimum silkscreen text height in KiCad, what fabs can print, and how to resize all reference text at once.
All other KiCad DRC checks (43)
Message in KiCadkicad-cli type
Items not alloweditems_not_allowed
Text or graphic on Edge.Cuts layertext_on_edge_cuts
Creepage violationcreepage
Tracks crossingtracks_crossing
Copper zones intersectzones_intersect
Drilled holes co-locatedholes_co_located
Copper connection too narrowconnection_width
Track angletrack_angle
Track segment lengthtrack_segment_length
Padstack is questionablepadstack
Padstack is not validpadstack_invalid
Micro via hole size out of rangemicrovia_drill_out_of_range
Footprint has no courtyard definedmissing_courtyard
Footprint has malformed courtyardmalformed_courtyard
PTH inside courtyardpth_inside_courtyard
NPTH inside courtyardnpth_inside_courtyard
Item on a disabled copper layeritem_on_disabled_layer
Duplicate footprintsduplicate_footprints
Missing footprintmissing_footprint
Extra footprintextra_footprint
Pad net doesn't match schematicnet_conflict
Footprint attributes don't match symbolfootprint_symbol_mismatch
Footprint doesn't match symbol's footprint filtersfootprint_filters_mismatch
Footprint field does not match symbol fieldfootprint_symbol_field_mismatch
Footprint doesn't match copy in librarylib_footprint_mismatch
Unresolved text variableunresolved_variable
Copper slivercopper_sliver
Silkscreen clipped by board edgesilk_edge_clearance
Text thickness out of rangetext_thickness
Track length out of rangelength_out_of_range
Skew between tracks out of rangeskew_out_of_range
Too many or too few vias on a connectiontoo_many_vias
Differential pair gap out of rangediff_pair_gap_out_of_range
Differential uncoupled length too longdiff_pair_uncoupled_length_too_long
Footprint is not validfootprint
Footprint component type doesn't match footprint padsfootprint_type_mismatch
Through hole pad has no holethrough_hole_pad_without_hole
Mirrored text on front layermirrored_text_on_front_layer
Non-Mirrored text on back layernonmirrored_text_on_back_layer
Missing tuning profilemissing_tuning_profile
Tuning profile track geometriestuning_profile_track_geometries
Track connected to post-machined or backdrilled layertrack_on_post_machined_layer
Track endpoint not centered on viatrack_not_centered_on_via

ERC errors (schematic editor)

All other KiCad ERC checks (36)
Message in KiCadkicad-cli type
Duplicate sheet names within a given sheetduplicate_sheet_names
Duplicate pins with different netsduplicate_pins
Mismatch between hierarchical labels and sheet pinshier_label_mismatch
Four connection points are joined togetherfour_way_junction
Label connects more than one wirelabel_multiple_wires
A pin with a "no connection" flag is connectedno_connect_connected
Unconnected "no connection" flagno_connect_dangling
Label connected to only one pinisolated_pin_label
Power pins are similar (lower/upper case difference only)similar_power
Power pin and label are similar (lower/upper case difference only)similar_label_and_power
Local and global labels have same namesame_local_global_label
Local and global power symbols have same namesame_local_global_power
Different footprint assigned in another unit of the symboldifferent_unit_footprint
Different net assigned to a shared pin in another unit of the symboldifferent_unit_net
Conflict between bus alias definitions across schematic sheetsbus_definition_conflict
Net is graphically connected to a bus but not a bus membernet_not_bus_member
Buses are graphically connected but share no bus membersbus_to_bus_conflict
Invalid connection between bus and net itemsbus_to_net_conflict
Ground pin not connected to ground netground_pin_not_ground
Pin name resembles stacked pinstacked_pin_name
Field name has leading or trailing whitespacefield_name_whitespace
Unresolved text variableunresolved_variable
Undefined netclassundefined_netclass
SPICE model issuesimulation_model_issue
Symbol doesn't match copy in librarylib_symbol_mismatch
Footprint link issuefootprint_link_issues
Assigned footprint doesn't match footprint filtersfootprint_filter
Symbol has more units than are definedextra_units
Symbol has units that are not placedmissing_unit
Symbol has input pins that are not placedmissing_input_pin
Symbol has bidirectional pins that are not placedmissing_bidi_pin
Symbol has power input pins that are not placedmissing_power_pin
Units of same symbol have different valuesunit_value_mismatch
Duplicate reference designatorsduplicate_reference
Bus Entry neededbus_entry_needed
Unconnected wire endpointunconnected_wire_endpoint

Check list generated from KiCad 10's source (drc_item.cpp and erc_item.cpp). Last reviewed 2026-11-07.