What this error means
A net can have exactly one name. When the connection graph finds a piece of net whose attached name drivers — labels of any kind, or a power symbol's pin — resolve to different names, it warns and names the winner: "Both A and B are attached to the same items; A will be used in the netlist."
The winner is not "whichever you placed first". KiCad ranks drivers: global label, then power symbol, then local label, then hierarchical label, then sheet pin; among equals, the alphabetically first name wins.
The check runs per physically wired piece of net on a sheet; only names attached to the same copper conflict.
Common causes
1. A second label was added on purpose, as an alias
The most common case: labeling a net with both its signal name and its connector name, expecting both to stick. KiCad has no net aliases — the losing label does nothing except trip this warning, and anything keyed to the losing name silently stops matching.
2. A labeled wire also carries a power symbol with a different name
A wire labeled VDD tied to a +3V3 power symbol is one net with
two names, and the power symbol outranks the label: the netlist says
+3V3. Hidden power-input pins on ordinary symbols count as name
drivers too.
3. Two nets got joined that were never meant to touch
Each label was correct until an edit connected their wires — a symbol dragged across a wire, a stray segment, a stale label surviving a rename. The netlist now has one net where you designed two.
How to fix it
Delete the extra label
- Read the warning: the name after "Both" is the keeper; the other is discarded.
- Click the label you don't want and press Delete.
- Re-run ERC (Inspect → Electrical Rules Checker).
Use when: The net is one net and one name is redundant — the large majority of reports.
Make the label agree with the power symbol
- Rename the label to the rail's name (double-click it), or delete it and let the power symbol name the net.
- If the rail name itself is wrong, swap the power symbol (e.g. +3V3 for +5V) — it outranks any label.
- Re-run ERC.
Use when: The conflict pairs a wire label with a power symbol. Keep both and the schematic reads one name while the PCB nets carry another.
Check whether this should be one net at all
- Hover the flagged wire and press the highlight-net key (backtick) to see everything the net reaches.
- Find the joining wire or overlapping pin and break the connection.
- Re-run ERC and confirm each name comes back on its own net.
Use when: Both names are supposed to exist — on different nets. Unless the second name was deliberate, assume an accidental join until the highlight proves otherwise.
When it’s safe to exclude
This is one of the few checks with a genuinely deliberate case — some people double-label a net as documentation and accept that one name wins. Even then, deleting the extra label costs less than an exclusion, because netclass assignments and PCB rules match the netlist name only.
If you keep a double-named net anyway, exclude the individual violation (right-click the marker → Exclude this violation) rather than dropping the check's severity in Schematic Setup → Electrical Rules → Violation Severity. Severity-ignore also silences the accidental-join case, which is a real wiring error wearing the same warning.
Gotchas
- Only the first conflict per net piece is reported each run — a triple-labeled net comes to you in installments, one marker per re-run.
- A global label added "just for the PCB" renames the whole net — global labels outrank everything — while the schematic keeps displaying the old local name.
- KiCad 9 counts only global power symbols as name drivers; KiCad 10 also counts its new local power symbols. A 10-only warning involving a local power symbol is this difference, not a regression.
Minimal reproduction
Draw a wire between any two pins and attach two local labels with
different names — VCC and VDD — to the same wire, then run ERC. The
report shows:
[multiple_net_names]: Both VCC and VDD are attached to the same items; VCC will be used in the netlist
; warning
VCC wins: the two local labels tie on priority and sort alphabetically.
The checked-in file data/erc/samples/multiple_net_names.kicad_sch
reproduces this with two embedded one-pin symbols sharing a
double-labeled wire; its two lib_symbol_issues warnings about the
missing repro library are an artifact of embedding the symbols, not
part of this error. Deleting the VDD label clears the warning.
Related errors
- Label connects more than one wire
- Local and global labels have same name (reference page coming soon)
- Labels are similar (lower/upper case difference only) (reference page coming soon)
FAQ
Can I put two different labels on the same net?
Electrically it works — the wire is still one net. But only one name survives into the netlist, and anything keyed to the other name matches nothing. For a second visible name, use free text (Place → Draw Text), which annotates without naming.
Is there a way to suppress this warning when the double name is intentional?
Right-click the marker and choose Exclude this violation; the exclusion is stored in the project and survives re-runs. Avoid downgrading the whole check in Schematic Setup → Electrical Rules → Violation Severity — this warning is often the only sign of two nets shorted by a stray wire.
Why does ERC report this on a power net that has a power symbol on it?
A power symbol is a name driver, so a wire carrying both a power symbol and a differently named label has two names, and the power symbol's wins. Rename or remove the label, or switch to the power symbol whose name the rail should carry.