What this error means

Since KiCad 10, one symbol pin can represent several physical pads by writing the pad numbers in square brackets as the pin number: [1-4], [1,2,3], or [A1-A4,B7] are all one pin standing in for a whole pad stack. ERC parses every pin number that contains a bracket, and this warning fires when the parse fails: the number resembles stacked notation but cannot be expanded into a pad list.

The parser's rules: the number must start with [ and end with ] (a bracket anywhere else fails outright); the inside is a comma-separated list; each item is a single pad number or a start-end range; and a range needs the same alphabetic prefix on both ends, digits on both ends, in ascending order. So [1,2, 1[2], [], [2-1], [A-B], and [A1-B3] all fail, while [1-2,5] and [A1-A3] expand fine.

A pin that fails the parse is not treated as a stack. It stays a single pin whose pad number is the literal bracket string — the netlist will go looking for a footprint pad named [2-1].

Common causes

1. A typo in hand-typed stacked-pin notation

A missing closing bracket ([1,2), a range written high-to-low ([8-1]), mismatched prefixes ([A1-B3]), or a range with no digits to count through ([A-B]). The schematic saves and loads fine either way; this check is the only thing that will tell you the stack never took effect.

2. Brackets in a pin number that was never meant to be a stack

Before 10.0, brackets in a pin number were inert text. Now any bracket makes ERC try to parse the number as a stack, so a legacy or imported symbol that used brackets for its own purposes gets flagged. If such a number happens to parse, it silently becomes a multi-pad stack instead — worse than the warning.

How to fix it

Correct the notation

  1. Right-click the flagged symbol → Edit Symbol, then double-click the pin.
  2. Rewrite Pin number to the full syntax: wrapped in one pair of brackets, items separated by commas, ranges ascending with the same prefix on both ends — `[1-4]`, `[GND1-GND4]`, `[A1-A4,B7]`.
  3. Save and update the symbol in the schematic; the warning clears on the next ERC run.

Use when: You meant a stack. In the checked-in repro, changing `[2-1]` to `[1-2]` is the entire fix.

Let the editor write the notation for you

  1. In the Symbol Editor, keep (or place) the stack as individual pins at the same location.
  2. Right-click the pin stack → Convert Stacked Pins. KiCad collapses them into one pin and writes the bracket syntax itself.

Use when: You're building the stack anyway. The conversion tool cannot mistype the range, and Explode Stacked Pin reverses it.

Drop the brackets

  1. Edit the pin and remove `[` and `]` from Pin number.

Use when: The brackets were decoration, not a stack. Since 10.0 they are syntax, and a pad number that merely resembles it will keep tripping this check.

When it’s safe to exclude

Never, in practice. The warning only fires on a pin number that contains brackets and cannot be expanded, and that number is broken downstream too: the exported netlist keeps the literal string, so the net maps to a footprint pad named [2-1] — a pad no footprint has. Excluding the marker (right-click → Exclude this violation) or setting this check to Ignore in Schematic Setup → Electrical Rules → Violation Severity leaves that dead pad mapping in place with nothing left to point at it.

Gotchas

  • Despite the title, the check parses the pin number, not the pin name. A name like D[7-0] never trips it; the name field can bracket whatever it likes.
  • Only dash ranges are validated. [1;2] is accepted as a one-member stack whose single pad is named 1;2, warning-free.
  • Pin numbers can't hold spaces; KiCad swaps them for underscores before the parser runs, so [1, 2] passes — as a stack of pads 1 and _2.

Version notes

  • KiCad 10.0: Check introduced in this release.
Minimal reproduction

In the Symbol Editor, give any pin the number [2-1] (a descending range), save, place the symbol, and run ERC. The pin reports:

[stacked_pin_name]: Pin name resembles stacked pin
    ; warning

The checked-in file data/erc/samples/stacked_pin_name.kicad_sch reproduces this with an embedded one-pin symbol numbered [2-1], wired to a second passive pin so nothing else is undriven. Because the file embeds its own symbols, ERC also emits two lib_symbol_issues warnings about the missing repro library — artifacts of the self-contained repro. Changing the number to [1-2] drops the target violation to zero: fix #1 in miniature.

FAQ

What's the right way to make one symbol pin represent multiple pins for the same signal in KiCad 10?

Give a single pin all the pad numbers in brackets — [1-4] for a range, [A1,A2,B5] for a list — or stack individual pins at one location and right-click → Convert Stacked Pins to have KiCad write the notation for you. Both forms connect every pad to whatever touches the pin; the bracket form also displays all the pad numbers.

Do old symbols with pins physically stacked on top of each other trigger this warning?

No. Overlapped individual pins are a separate mechanism that still works; this warning reads only pin numbers containing square brackets. Old-style stacks can be upgraded to the bracket form with right-click → Convert Stacked Pins in the Symbol Editor.

What actually breaks if I leave the warning in place?

The pin keeps the malformed string as its one pad number, so the netlist looks for a footprint pad literally named [2-1] and the pads you meant to reach get nothing. That surfaces later as unconnected pads on the board, far from the symbol that caused it.

Sources