Copper connection too narrow

Diagnostic signature

Copper connection too narrow

The KiCad DRC engine has detected a copper area that necks down to a width smaller than the configured minimum connection width constraint. This commonly occurs at thermal relief spokes, zone fill bottlenecks, or track-to-pad intersections.

What it means

In KiCad, the Design Rule Checker measures the physical width of continuous copper areas to ensure they can safely carry current and be reliably etched by the manufacturer. The 'Copper connection too narrow' violation (internally represented by the code 'connection_width') indicates that a section of connected copper has a localized bottleneck whose measured width is strictly less than the 'Minimum connection width' defined in the board's constraints. Unlike standard track width violations—which strictly check the nominal assigned width of explicitly drawn routing segments—this violation evaluates the final generated geometry, including zone fills, thermal reliefs, and overlapping copper shapes, looking for unintended pinch points.

Why it happens

This diagnostic is most frequently emitted when a filled zone connects to a pad using thermal reliefs, but the 'Thermal relief spoke width' defined in the Zone Properties (or overridden in the Pad Properties) is smaller than the global 'Minimum connection width' specified in Board Setup -> Design Rules -> Constraints. It is also commonly caused by automated polygon pours attempting to squeeze into tight spaces between closely spaced vias or pads, resulting in a thin sliver of copper that connects two wider areas but is pinched in the middle. Less commonly, it occurs if a trace intersects a rectangular pad corner at an awkward offset or acute angle, mathematically reducing the unbroken geometric width at the intersection below the minimum allowed threshold.

Minimal reproduction

(kicad_pcb (version 20240108) (generator pcbnew)
  (setup
    (pcbplotparams (usegerberextensions true))
  )
  (net 0 "")
  (net 1 "GND")
  (footprint "Test:Pad" (at 100 100) (layer "F.Cu")
    (pad "1" thru_hole circle (at 0 0) (size 1.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net 1 "GND"))
  )
  (zone (net 1) (net_name "GND") (layer "F.Cu") (hatch edge 0.33)
    (connect_pads (clearance 0.2) (spoke_width 0.25))
    (min_thickness 0.25)
    (polygon
      (pts (xy 90 90) (xy 110 90) (xy 110 110) (xy 90 110))
    )
  )
)

How to fix it

Increase the width of the localized copper connection to meet the board's constraints, prevent the zone from pouring into the bottleneck, or lower the global constraint if the fabrication house allows.

```S-Expression
(kicad_pcb (version 20240108) (generator pcbnew)
  (setup
    (pcbplotparams (usegerberextensions true))
  )
  (net 0 "")
  (net 1 "GND")
  (footprint "Test:Pad" (at 100 100) (layer "F.Cu")
    (pad "1" thru_hole circle (at 0 0) (size 1.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net 1 "GND"))
  )
  (zone (net 1) (net_name "GND") (layer "F.Cu") (hatch edge 0.33)
    (connect_pads (clearance 0.2) (spoke_width 0.5))
    (min_thickness 0.25)
    (polygon
      (pts (xy 90 90) (xy 110 90) (xy 110 110) (xy 90 110))
    )
  )
)
```

Step 1

Step 2

Step 3

Step 4

Step 5

Upstream references

Copper connection too narrow for generated zone fill (#14130) · Issue · kicad/code/kicad - GitLab

Copper connection too narrow (like minimum width is not taken into account) (#15658) · Issue · kicad/code/kicad - GitLab