Copperpour (Copperpour) errors
59 recurring problems engineers report in Copperpour (Copperpour), ranked by impact.
#3 by errors trackedECAD
Recurring Copperpour (Copperpour) errors, by impact
- 1A KiCad MCP edit deleted a track, failed to create the replacement, and returned an error that never mentioned the deletion.ECAD · Agent failure · 1 report74
- 2A team using an MCP Freerouting wrapper day to day on a dense 4-layer board found max passes and timeout sent under keys Freerouting silently drops, the project's copper-to-edge clearance and hole rules never reaching the router, and a job that ended with connections still unrouted answering success: true.ECAD · Agent failure · 1 report74
- 3apply_specctra_ses writes the routed board to a new candidate file and runs kicad-cli DRC on it, but kicad-cli takes netclasses, custom rules and the schematic from files named like the board, and those never exist beside a new candidate. So drc.clean: true could hide violations the project DRC reports.ECAD · Agent failure · 1 report74
- 4connect_passthrough drew a 2.54 mm stub with no check of what it meets, so when the stub end landed on another pin that pin joined the net and the call still reported success.ECAD · Agent failure · 1 report74
- 5Copperpour drives a live KiCad board for agents. If a moved footprint lands a pad on another net's via, KiCad silently gives the via the pad's net, so DRC finds nothing afterwards. A pad landing on a track shorts it. The PR makes the move, rotate and batch placement tools ask KiCad where the copper is first and refuse the whole call on any overlap, with a dry run and an explicit override. They also hit KiCad 10.0.8 returning a B.Cu outline for an F.Cu-only SMD pad, so they check layer presence instead of trusting outlines.ECAD · Agent failure · 1 report74
- 6create_footprint silently replaced an existing KiCad footprint and reported success, never reading the destination. On KiCad stock R_0402 footprint the file became 957 bytes with 1 pad and the original was gone, and nothing in the response said a file was replaced.ECAD · Agent failure · 1 report74
- 7create_symbol writes a name unescaped, reports success, and leaves a library KiCad cannot load: with a quote in the name the call returns success true while the file holds a broken symbol, and with a backslash the name is read back differently so the duplicate check never matches. This is the third Copperpour write tool in two days that reports success without reading back what it wrote.ECAD · Agent failure · 1 report74
- 8Every MCP wire call dotted every T on the sheet and joined nets it never touched: add_wire, batch_add_wire and the wire stubs of connect_to_net and batch_connect_to_net added a junction at every junction-less T on the sheet, not only at the Ts their own wire forms. KiCad keeps a wire end landing mid-span without a junction on its own net, so drawing any wire anywhere joined those nets, and the call reported success.ECAD · Agent failure · 1 report74
- 9Four design-rule and netclass writers read .kicad_pro, edited it, and wrote it back unconditionally; a rewrite in between (KiCad, a second server, another HTTP call) got reverted to the older read, and both calls reported success. Now it writes only if the file still holds what was read.ECAD · Agent failure · 1 report74
- 10mm-to-nm conversion truncates, so 1.025 mm becomes 1.024999. KiCad DRC flags 16 lib_footprint_mismatch, one per 0805 resistor, while the caps whose values convert exactly pass.ECAD · Agent failure · 1 report74
- 11On a 119-footprint KiCad 10 board, kicad-cli DRC lists 107 footprints that do not match their library, while Copperpour dry-run update plans changes for 117. Twelve of those are footprints KiCad itself treats as matching, including stock M3 mounting holes, and the reporter lead is a pad clause KiCad writes into the board copy and not the library file.ECAD · Agent failure · 1 report74
- 12Route differential pair created the positive track, failed on a typo in the negative net name, and left half a pair on the board without saying so.ECAD · Agent failure · 1 report74
- 13The update_pcb_from_schematic tool placed 33 footprints with no diagnostics, but every pad_prop clause was gone, covering heatsink, BGA, mechanical and fiducial flags. KiCad DRC then flags lib_footprint_mismatch on each affected part, and the tool that could restore them refuses the clause, so the only fix is KiCad's own Update Footprints from Library. The author counted 1,333 stock KiCad 10.0.6 footprints carrying at least one of these flags.ECAD · Agent failure · 1 report74
- 14Two writers on one KiCad project file silently dropped each other's changes while both reported success, because the .kicad_pro writers had no revision check.ECAD · Agent failure · 1 report 174
- 15When two placed symbols share a reference like R4, which is ordinary before annotation, after a copy-paste or when a block is reused, the connect tools wire whichever copy comes first in the file and report success. The read tool an agent would use to check its own wiring reports the first copy's net, so a caller checking its wiring gets the other copy's net. Issue #88 reported the same pattern, and PR #416 closes it.ECAD · Agent failure · 1 report74
- 16"An agent that routes from a plan lays hundreds of segments and vias." The KiCad tools took one item per call, one undo step each, and "a failure halfway leaves half a plan on the board." New apply_copper does a dry run, then commits the whole batch in one KiCad commit and reads every item back. Delete and re-net need separate maintainer agreement.ECAD · Agent failure · 1 report66
- 17A KiCad agent server that, when HOME was unset, wrote its user config, JLCPCB database, EasyEDA cache, call log, and KiCad global library tables into whatever directory it started in, often a KiCad project, mixing user state into project files.ECAD · Agent failure · 1 report66
- 18A KiCad MCP pin editor has to re-implement KiCad's own duplicate-pin and unit rules, citing KiCad source lines, so an agent cannot write a symbol KiCad would reject.ECAD · Agent failure · 1 report66
- 19A KiCad MCP server tells the agent a schematic may have changed when KiCad's editor lock blocked the write and nothing changed. With a .lck file present the write is refused before touching the file, which stays byte-identical, yet the server returns mutation_outcome_uncertain with retry marked unsafe.ECAD · Agent failure · 1 report66
- 20After the konnect to copperpour rename, init leaves the old hooks beside the new ones in the agent's settings, so every PCB pre-tool hook runs twice.ECAD · Agent failure · 1 report66
- 21Agents using the bundled KiCad schematic skill place generic R and C symbols with only Reference and Value. The schematic passes ERC clean, then fails PCBA checks at JLCPCB for missing LCSC, MPN and Manufacturer fields, and someone fills them in by hand.ECAD · Agent failure · 1 report66
- 22An agent asks to rotate a crystal to minus 45 degrees, and gets 'KiCAD rejected the component placement batch over IPC'. KiCad rejected nothing: Copperpour refused it before asking KiCad, and every local refusal gets worded as a KiCad rejection with no error kind a client can match.ECAD · Agent failure · 1 report66
- 23An agent PCB tool's only autorouting path refuses any board with more than two layers. Copperpour reaches Freerouting only through a Specctra round trip, and that path accepts just F.Cu and B.Cu, front-side parts, no copper zones and no custom rules. A dense 4-layer board with inner ground and power planes fails on the first step.ECAD · Agent failure · 1 report66
- 24apply_specctra_ses returned drc.clean false when the only finding was a via_dangling warning; KiCad showed 0 unconnected items and clean parity. A caller or agent reads it as a failed import.ECAD · Agent failure · 1 report66
- 25batch_add_power_symbol leaves no junction dot on a two-pin group corner. Connectivity is not affected and the netlist is right, but the result differs from what eeschema draws and from Copperpour other tools, reproducing with 5 GND pins correct and one junction where two were expected.ECAD · Agent failure · 1 report66
- 26Child-sheet placement and file annotation 'could report success while Eeschema held the project open, then lose the edits on Eeschema's next save.' Four writers now check the root project's editor lock and refuse with a conflict before touching any file. An agent and a person editing the same design had no shared idea of who owned it.ECAD · Agent failure · 1 report66
- 27Claude Desktop opens a second connection to each local MCP server for cloud agent sessions. Through that connection the agent only ever saw the starter kit. It called load_toolset, got success, and for the next 30 minutes used none of the loaded tools. get_active_toolsets said they were loaded. They never showed up, even after refresh.ECAD · Agent failure · 1 report66
- 28Copperpour's candidate DRC now reads the project's custom rules, which is correct, but KiCad checks creepage single-threaded over every net pair and layer, so the agent routing tool pays that cost once per candidate. One KiCad creepage rule turns a seconds-long DRC into 20 plus minutes, now paid per routing candidate. The fix is an opt-in skip_creepage flag that reports creepage_skipped.ECAD · Agent failure · 1 report66
- 29Eighteen places read HOME or APPDATA with an empty default, so under systemd or a sandbox the server reads KiCad config and sym-lib-table from whatever directory it started in, with no warning.ECAD · Agent failure · 1 report66
- 30export_specctra_dsn refused any footprint with repeated pad numbers, so a board with a connector with two MP pads could not reach FreeRouting at all. The fix maps pads by UUID and refuses a swapped or stale mapping on import.ECAD · Agent failure · 1 report66
- 31Footprint writers reported not changed after already replacing the file, because one Conflict error covers both nothing written and readback mismatch after replace.ECAD · Agent failure · 1 report 166
- 32Freerouting settings that did not take were only reported after routing finished, wasting 5 to 30 minutes on a dense 4-layer board.ECAD · Agent failure · 1 report66
- 33KiCad 10 lets a project list multiple top-level sheets, but every schematic write to a non-root listed sheet was refused as a hierarchy conflict or stale target because ownership only knew the project root. A listed sheet whose entry uuid differs from the file uuid, which is how eeschema saves it, was refused as stale_target.ECAD · Agent failure · 1 report66
- 34KiCad MCP routing tools put tracks on non-copper layers and accepted negative widths, then reported success.ECAD · Agent failure · 1 report66
- 35KiCad writes footprint angles in the range -180 to 180 and Freerouting returns them as 0 to 360. A footprint at -90 came back at 270, and the import refused every Freerouting session for any board with a negative-angle part, reporting that the session 'changes placement.' The fix compares angles modulo 360.ECAD · Agent failure · 1 report66
- 36Konnect's export_specctra_dsn refused a plain 2-layer board because a .kicad_dru file existed at all, then because a mounting hole on Edge.Cuts is a circle, and native_bridge_mode require returned the same refusal. pcbnew.ExportSpecctraDSN on the same board returned a 22 KB DSN that Freerouting routed in 1.4 s. The user had to drop to raw pcbnew to get around the agent tool.ECAD · Agent failure · 1 report66
- 37Missing live IPC tools forced the user to close and reopen KiCad's PCB editor several times an hour, with most board edits going through raw pcbnew Python against a closed file.ECAD · Agent failure · 1 report 166
- 38Native DSN names repeated pads MP, MP@1 differently from Copperpour's J1-MP naming, so adopt_native_dsn refuses such boards.ECAD · Agent failure · 1 report66
- 39No tool could change one pin of a KiCad library symbol; renaming a pin meant deleting the symbol and recreating it with every pin. De Morgan symbols make a pin number ambiguous unless body style is given.ECAD · Agent failure · 1 report66
- 40On a real 8-sheet, roughly 330-footprint quad CM3588 carrier in KiCad 10.0.5, the agent added vias and traces after the ground zones were filled. Each routing call reported success. The next DRC flagged every new via at zone clearance 0.0000 against every plane. The refill tool exists, and the skill notes say to refill after routing, but no routing tool's description or response says so. The agent's view of the board and the saved file disagreed, and the tool gave no hint.ECAD · Agent failure · 1 report66
- 41On a routed board, schematic net splits could never reach the PCB through the agent tool, because update_pcb_from_schematic returns routed_pad_net_change with no override argument.ECAD · Agent failure · 1 report 166
- 42On a sheet placed more than once, eeschema writes the Reference property from one instance only to avoid file churn. Copperpour's edit tools then refuse every symbol on that sheet as stale_target.ECAD · Agent failure · 1 report66
- 43Rotating footprints by a non-90 degree angle through KiCad IPC API was refused for any footprint with a rectangle graphic, because KiCad always sends a corner_radius field, even when it is zero. Most stock footprints have a courtyard rectangle, so one such part dropped the whole batch.ECAD · Agent failure · 1 report66
- 44Route trace with width -0.2 goes to KiCad and the result echoes -0.2, and a negative diff-pair gap swaps the pair, because the schema checks only the type.ECAD · Agent failure · 1 report66
- 45Schematics have set_schematic_page, boards have nothing, so an agent can't fix a board that overruns its sheet. In their projects a 200 x 140 mm board on A4 overlaps the title block by 73 x 24 mm, and a 250 x 195 mm board on A3 by 35 x 6 mm. Gerbers don't care, but PDF and SVG plots do. Read and write coverage in agent tools is uneven.ECAD · Agent failure · 1 report66
- 46The agent PCB netlist export never worked: export_netlist takes a .kicad_pcb but runs sch export netlist, while hand-run kicad-cli produced a correct 536-record netlist.ECAD · Agent failure · 1 report 166
- 47The DRC writes and then deletes <board>.drc.json, overwriting any existing file. In project views it writes through a symlink, so the real project ends up holding a candidate's report, which contradicts the claim that nothing in the project directory is written.ECAD · Agent failure · 1 report66
- 48The DSN only carries net class widths, so the project's minimum track width never gets used by the router. Necking down is now opt-in, because Freerouting would narrow power and mains nets too, and KiCad DRC does not flag a track narrower than its class.ECAD · Agent failure · 1 report66
- 49The KiCad MCP server found kicad-cli by checking the working directory first, so a stray file named kicad-cli there ended discovery, get_installation_info reported cli_path kicad-cli, and on Windows the real install was never found, while every kicad-cli-backed tool depended on where the server happened to start.ECAD · Agent failure · 1 report66
- 50The KiCad MCP server's schematic viewer lookup fell back to a bare name in the working directory, then the launch resolved that name on PATH, so it could run a different binary or fail while reporting 'schematic-viewer'.ECAD · Agent failure · 1 report66
- 51The KiCad MCP tool changed a trace with two IPC calls, delete then create. When KiCad refused the create, for example a layer the board does not have, the track was already gone and the tool answered 'KiCAD must be running with the board loaded'. Its modified_uuid named the deleted track. The fix edits the track in place in one commit, reads it back and returns a typed outcome, including 'unproven' when it cannot tell.ECAD · Agent failure · 1 report66
- 52The KiCad plugin and the server pick different registration folders when XDG_DATA_HOME is empty or relative, so the server never finds the plugin, and a Specctra DSN export set to require the native bridge fails, while one set to prefer quietly falls back to the Rust exporter, and the plugin leaves files under KiCad's working directory.ECAD · Agent failure · 1 report66
- 53The KiCad to Freerouting round trip used to refuse any board with a copper zone. It now exports zones as planes, but the import tells you the fills predate the new routing, and it refuses a manifest whose zone inventory differs from the live board. The author says it has been running on a dense 4-layer board for days. Board state has to be pinned on both sides of the handoff or the router works on a stale picture.ECAD · Agent failure · 1 report66
- 54The Specctra DSN export refuses any board whose outline has rounded corners, saying Edge.Cuts gr_arc is not a straight line, so the Freerouting round trip is closed to most real boards.ECAD · Agent failure · 1 report66
- 55The Specctra round trip to the autorouter 'refused any footprint on B.Cu,' so double-sided boards could not be routed. Bottom-side pads are mirrored one way in KiCad and unflipped in its export, and the tool had to copy KiCad's convention exactly. The contributor says the code has run in their own build 'for a few days' on a dense 4-layer board.ECAD · Agent failure · 1 report66
- 56The v0.15.0 release of a KiCad agent toolkit is blocked because the real-KiCad end-to-end test asks for a wire that crosses another pin, which the tool has correctly refused since an Oct 23 merge. Nobody noticed because the real-KiCad workflow had not run since Oct 19.ECAD · Agent failure · 1 report66
- 57Two different failures return the same Conflict error: the file changed before the write, or the readback after the rename did not match, which means the file was already replaced. Two callers were fixed one by one, and about 40 more call sites, including schematic connectivity fixes, datasheet enrichment and component deletion, still tell the caller nothing was written. The issue calls out the worst case: a retry can apply the change twice.ECAD · Agent failure · 1 report66
- 58An MCP schematic-to-PCB sync returned every planned change before its verdict, so a 340-footprint dry run came to 166 KB and overflowed the agent client.ECAD · Agent failure · 1 report58
- 59The agent only emits rectangular board outlines, so a PCIe CEM outline of about 20 segments plus 3 arcs had to be drawn into Edge.Cuts by hand.ECAD · Agent failure · 1 report58
How it fails
Engineering tools that address these errors
Sourced from public community reports. Costs and delays on individual entries are modeled estimates, not measurements.