Two 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.
Recurring agent failure issue in Copperpour (Copperpour)
What engineers report
A recurring agent failure problem in Copperpour (Copperpour) that mostly hits the electrical engineer.
Failure pattern: agent / silent failure
Analyst note
From the Grok pain-radar digests, Nov 10-11 2026 (Nov 10 8:41 AM ET through Nov 11 7:41 AM ET digests plus the Haitch editions). Verified live 2026-11-11: issue/PR read; title and state confirmed.
What it costs a team
Modeled annual cost
$30,000
For a team of 5
Prototype delay
3 days
Modeled schedule slip per occurrence
Time lost
240 min
Per engineer per month, about 1 incidents
How the cost is modeled
240 min/month × 5 engineers × 12 months = 240 hours × $125/hour = $30,000
A modeled estimate with medium confidence. Swap in your own team size and loaded rate to size it for your team.
Engineering tools that address it
No engineering tool profile lists this error yet. Browse tools that connect to Copperpour (Copperpour).
Evidence
More recurring errors in Copperpour (Copperpour)
- A KiCad MCP edit deleted a track, failed to create the replacement, and returned an error that never mentioned the deletion.ECAD · impact 74
- A 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 · impact 74
- apply_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 · impact 74
- connect_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 · impact 74
- Copperpour 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 · impact 74
- create_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 · impact 74
Sourced from public community reports. Costs and delays are modeled estimates, not measurements. Know a better source or a fix? Tell us at hello@productflo.io.