Troubleshooting JLCPCB Gerber Upload and CAM Tool Compatibility Errors
You exported your Gerbers from KiCad, EasyEDA, or another EDA (electronic design automation) tool, uploaded them to JLCPCB, and hit an error. A JLCPCB Gerber file error usually traces back to a missing outline, a stray file attribute, or a zip packaged in a way JLCPCB's CAM (computer-aided manufacturing) tool doesn't expect. This guide maps the frequent rejection messages to their causes and fixes.
Key Takeaways
- "Cannot be read by CAM tool" usually comes down to zip contents, file naming, and/or unexpected Gerber X2 attributes.
- A missing or open board outline on the Edge.Cuts layer is a frequent cause of a rejected upload.
- Exporting from Flux with JLCPCB-compatible defaults avoids most of these errors before they happen.
Common JLCPCB Gerber File Errors (And What They Mean)
Why does JLCPCB reject my Gerbers? Its CAM tool parses every uploaded file before accepting an order and rejects anything that doesn't match its expected structure. The table below lists the error messages engineers run into most often, next to the cause behind each one.
| Error Message | Most Likely Cause |
|---|---|
| "Cannot be read by CAM tool" | Wrong Gerber format, missing drill file, or a zip packaged incorrectly |
| "Gerber file missing board outline" | Edge.Cuts layer not exported, or exported to the wrong layer |
| "Excellon drill file not found" | Drill file exported separately, or left out of the zip |
| "Multiple outline layers detected" | A courtyard or fabrication layer included as a second outline |
| "File format not recognized" | Gerber X2 attributes the CAM tool can't parse |
Each error traces to a mismatch between what your EDA tool exported and what the CAM tool expects. The sections below cover each cause, starting with the frequent ones.
Fix: "Cannot Be Read by CAM Tool" Error
This JLCPCB Gerber file error rarely comes from a single cause. Work through these checks in order:
- Check the zip contents. Include only Gerber files and the drill file. A stray project file, BOM, or pick-and-place file can fail the whole upload.
- Confirm file extensions. JLCPCB expects standard .gbr and .drl extensions. A zip with native project files, such as KiCad's .kicad_pcb or EasyEDA's board file, won't parse.
- Re-export in standard RS-274X format. KiCad and EasyEDA both default to Gerber X2 in current versions, which embeds metadata the CAM tool doesn't always handle cleanly.

Fix: Missing or Incorrect Board Outline
The CAM tool needs a clean, closed board outline to define the shape it will route and drill. Without one, it has no reference for where the board edge sits relative to your copper and hole data.
- Export Edge.Cuts as a dedicated layer, separate from silkscreen or fabrication notes.
- Confirm the outline is a closed polygon. Even a small gap fails outline detection. Zoom in on every corner you edited.
- Keep mechanical notes off the outline layer. Mixing dimension lines or assembly notes into Edge.Cuts triggers "multiple outline layers detected."
Fix: Gerber X2 Format Errors
Gerber X2 format extends standard RS-274X with embedded attributes for layer function, aperture use, and net data. Gerber X2 is a genuine improvement for traceability, but JLCPCB's CAM tool doesn't parse every attribute correctly. One unrecognized line often causes the Gerber X2 format errors that PCB designers report.
- KiCad: disable "Use extended X2 format" in the Gerber export dialog before plotting.
- EasyEDA: switch the Gerber format setting to standard, or choose the legacy export option.
- Flux: exports standard RS-274X by default, so no extra step is needed.
If your tool doesn't expose an X2 toggle, check the header lines of each Gerber file for %TF attribute statements and strip them, though re-exporting with X2 disabled is more reliable.
Exporting Clean Gerbers from Flux for JLCPCB
Flux's Gerber export defaults are built around what fabrication houses like JLCPCB actually expect, so most of the errors above don't come up when exporting directly from Flux.
- Default format: standard RS-274X Gerbers and an Excellon drill file, with each layer written to its own file using JLCPCB's naming convention.
- Layers to include: a standard two-layer or four-layer board needs copper, solder mask, silkscreen, Edge.Cuts, and the drill file, pre-selected in Flux's export dialog.
- Verify before uploading: Flux shows a Gerber preview after export. Compare it against your board layout before sending the zip to JLCPCB.
Flux's Gerber export documentation covers the full export dialog if you want the complete reference. You can also skip the manual troubleshooting entirely by designing your next board in Flux and exporting Gerbers that JLCPCB's CAM tool accepts on the first try.
Verifying Gerbers Before Upload
A quick check before you upload catches most errors before JLCPCB's CAM tool ever sees the file.
- Use JLCPCB's Gerber viewer to preview the files the way its CAM tool will interpret them.
- Check outline continuity. A visible gap or a doubled line where the outline should close is a reliable sign of a rejection.
- Check copper-to-edge clearance. Copper touching the outline boundary in the preview often points to a layer alignment issue.
- Watch for missing layers. If silkscreen or the drill layer doesn't render, it likely wasn't included in the zip.
Get It Right the First Time
A JLCPCB Gerber file error costs time you don't have before a deadline. Export your next board from Flux instead. Flux’s Gerber defaults already match what JLCPCB's CAM tool expects, with no X2 toggle to remember or outline layer to double-check by hand. Try exporting your board's Gerber files from Flux and run them through JLCPCB's viewer before your next order.
FAQs
JLCPCB rejects Gerber files most often over a missing or open board outline, extra non-Gerber files in the zip, or Gerber X2 attributes its CAM tool can't parse.
JLCPCB's CAM tool works most reliably with standard RS-274X Gerber and Excellon drill files, not Gerber X2.
Check the zip for extra files, confirm the outline is a closed polygon on its own layer, and re-export without Gerber X2 attributes if your tool defaults to that format.
Yes, JLCPCB requires an Excellon drill file with the Gerbers, or the upload fails with "Excellon drill file not found."
More in Business & Strategy Library
Let’s start building.
Let’s build your idea together. All you need to do is describe what you want to make, or what problem you want to solve. Flux will work with you to make it a reality.

