Error codes
Every code kaicad can emit. The registry is append-only: a code that has been seen by someone’s LLM, or counted in an evaluation run, keeps meaning the same thing forever. Retiring a rule marks its code retired and never reuses the number.
The explanations below are written for a model repairing a document. That is a docs decision
that lives in code — they are stored beside the registry, in packages/spec/src/codes.ts, so the report, the
authoring pack and this page cannot disagree.
| Prefix | Owns | Codes |
|---|---|---|
SCH- |
Schema and document structure | 6 |
RES- |
Resolution — parameters, expressions, catalogue lookups | 9 |
GEO- |
Geometry and assembly | 8 |
FAS- |
Fasteners and fixtures | 8 |
MFG- |
Manufacturing and stock | 6 |
STR- |
Structural | 4 |
DOM- |
Domain rules and standards | 4 |
PTH- |
Paths and service voids | 3 |
SCH — Schema and document structure
Section titled “SCH — Schema and document structure”SCH-001
Section titled “SCH-001”The document is not valid YAML · default severity: error
The file could not be parsed. Most often an indentation error, or a value containing a colon that needs quoting.
SCH-002
Section titled “SCH-002”The document does not match the schema · default severity: error
A required key is missing, or a value has the wrong type. The path points at the exact location.
SCH-003
Section titled “SCH-003”Unknown schema version · default severity: error
The schema: line names a version this build does not know. Get the current authoring pack from the app.
SCH-004
Section titled “SCH-004”The document was written for an older schema · default severity: warning
The design was migrated forward automatically. It will keep compiling, but regenerate it from the current pack when convenient.
SCH-005
Section titled “SCH-005”Units other than millimetres · default severity: error
This format is metric only. Every length is a number of millimetres.
SCH-006
Section titled “SCH-006”Duplicate identifier · default severity: error
Two parts, materials, parameters or joints share an id. Ids must be unique.
RES — Resolution — parameters, expressions, catalogue lookups
Section titled “RES — Resolution — parameters, expressions, catalogue lookups”RES-001
Section titled “RES-001”Expression could not be parsed · default severity: error
The expression language supports arithmetic, comparison, min, max, round, ceil, floor, abs, and references to parameters, materials, parts and catalogue values. Nothing else.
RES-002
Section titled “RES-002”Reference to something that does not exist · default severity: error
An expression names a parameter, material, part or catalogue entry that is not in the document.
RES-003
Section titled “RES-003”Circular reference between derived values · default severity: error
Two or more derived parameters depend on each other, so neither can be computed.
RES-004
Section titled “RES-004”Parameter is outside its declared range · default severity: error
The value given falls outside the min/max the parameter itself declares.
RES-005
Section titled “RES-005”Catalogue entry not found · default severity: error
A material, fixture or standard id does not exist in the pinned catalogue. Check the catalogue reference in the authoring pack.
RES-006
Section titled “RES-006”Feature position is over- or under-specified · default severity: error
Give exactly one of at, center, or a from/to pair. Giving several is ambiguous; giving none leaves the feature unplaced.
RES-007
Section titled “RES-007”Anchor path does not resolve · default severity: error
A mate names a part, instance or anchor that does not exist. Anchor paths look like side_rail@left:face.start.
RES-008
Section titled “RES-008”Expression produced a value of the wrong kind · default severity: error
A length expression returned a string or a boolean, or a count returned a fraction.
RES-009
Section titled “RES-009”Material narrowed to a stock size that is not made · default severity: error
The thickness or width asked for is not available in that species and class. The suggestion lists the nearest real sizes.
GEO — Geometry and assembly
Section titled “GEO — Geometry and assembly”GEO-001
Section titled “GEO-001”Parts overlap · default severity: error
Two solids occupy the same space. Usually a mate that needs an offset, or a missing joint.
GEO-002
Section titled “GEO-002”Part is not connected to anything · default severity: error
The part has no joint to any other part, so it would fall on the floor. Every part needs at least one joint, directly or through a group.
GEO-003
Section titled “GEO-003”Feature falls outside the blank · default severity: error
A feature is positioned past the edge of the board it is cut into.
GEO-004
Section titled “GEO-004”Feature removes too much material · default severity: warning
A cut leaves less than a third of the board thickness behind, which is fragile in solid wood.
GEO-005
Section titled “GEO-005”Features intersect each other · default severity: warning
Two cuts in the same part overlap. Sometimes intentional, often a sign of a position error.
GEO-006
Section titled “GEO-006”The assembled piece exceeds its declared envelope · default severity: error
The finished dimensions are larger than requirements.max_envelope allows.
GEO-007
Section titled “GEO-007”No ground part · default severity: error
Nothing is held still, so the assembly has no fixed reference. Name one part in assembly.ground.
GEO-008
Section titled “GEO-008”Mate leaves the roll undetermined · default severity: warning
The default roll was used because the two anchors do not fix it. Add align.roll if the part is rotated the wrong way.
FAS — Fasteners and fixtures
Section titled “FAS — Fasteners and fixtures”FAS-001
Section titled “FAS-001”Fastener is too close to an edge · default severity: error
Driving a screw nearer the edge than the fixture allows splits the board. The suggestion gives the minimum distance for this fixture and species.
FAS-002
Section titled “FAS-002”Fastener is too close to an end · default severity: error
End grain splits more readily than edge grain, so the end distance is larger.
FAS-003
Section titled “FAS-003”Insufficient engagement in the receiving part · default severity: error
The screw does not reach far enough into the second board to hold. Either use a longer fastener or a thinner first board.
FAS-004
Section titled “FAS-004”Fastener would break through the far face · default severity: error
The fastener is longer than the material behind it.
FAS-005
Section titled “FAS-005”Fastener driven into end grain · default severity: warning
End-grain screw holding is roughly half of face-grain holding. Consider a dowel, an insert or a different joint.
FAS-006
Section titled “FAS-006”Fasteners are spaced too closely · default severity: warning
Closely spaced fasteners along the grain can split a board.
FAS-007
Section titled “FAS-007”Joint declared removable but uses glue · default severity: error
requirements.knock_down is set, but this joint is glued, so the piece cannot be taken apart.
FAS-008
Section titled “FAS-008”No fixture given for a hardware joint · default severity: error
Joint kinds other than butt and glue_only need a fixture:.
MFG — Manufacturing and stock
Section titled “MFG — Manufacturing and stock”MFG-001
Section titled “MFG-001”Part is longer than any available board · default severity: error
No stock length in the catalogue can produce this part.
MFG-002
Section titled “MFG-002”Part is wider than the stock it is cut from · default severity: error
The part needs a glue-up, or a wider board. Say which in the design rather than leaving it implied.
MFG-003
Section titled “MFG-003”Part exceeds the declared maximum part length · default severity: error
requirements.max_part_length exists because the piece has to get into the room. This part will not.
MFG-004
Section titled “MFG-004”Feature needs a tool that is not available · default severity: warning
The design uses a cut the declared requirements.tools cannot make. The suggestion names an alternative joint.
MFG-005
Section titled “MFG-005”Sheet yield is poor · default severity: info
The parts nest badly on the sheet. A small dimension change may save a sheet.
MFG-006
Section titled “MFG-006”Rounded dimension breaks a clearance that the exact value passed · default severity: warning
The cut list shows a rounded number that would fail a check the model passed. D13: cut to the exact figure, or change the design so the rounded one works.
STR — Structural
Section titled “STR — Structural”STR-001
Section titled “STR-001”Deflection exceeds the limit · default severity: error
Under the declared load the member sags more than requirements.deflection_limit. The suggestion gives the depth that would satisfy it.
STR-002
Section titled “STR-002”Shelf sag exceeds the limit · default severity: warning
The shelf span is too long for its material and thickness. Add a support, thicken it, or add a stiffening edge.
STR-003
Section titled “STR-003”Wood movement is not accommodated · default severity: warning
A wide solid-wood panel is fixed across its width, so seasonal movement will split it or push the joint apart.
STR-004
Section titled “STR-004”Racking resistance is inadequate · default severity: warning
The frame has no panel, brace or fixed back to resist being pushed sideways.
DOM — Domain rules and standards
Section titled “DOM — Domain rules and standards”DOM-001
Section titled “DOM-001”Slat gap exceeds the standard maximum · default severity: error
Mattress warranties and support both depend on the gap between slats. The suggestion gives the slat count that closes it.
DOM-002
Section titled “DOM-002”A required standard is not satisfied · default severity: error
The design lists a standard in requirements.must_satisfy and does not meet it.
DOM-003
Section titled “DOM-003”Dimension is outside the ergonomic range · default severity: warning
Seat, table and counter heights have narrow comfortable ranges. The suggestion gives the range for this item type.
DOM-004
Section titled “DOM-004”Mattress clearance is too tight or too loose · default severity: warning
Too tight and the mattress will not drop in; too loose and it slides around.
PTH — Paths and service voids
Section titled “PTH — Paths and service voids”PTH-001
Section titled “PTH-001”Cable path is not continuous · default severity: error
A declared path has a gap: no grommet, notch or void connects two segments.
PTH-002
Section titled “PTH-002”Service void is unreachable · default severity: warning
There is no access to the void once the piece is assembled.
PTH-003
Section titled “PTH-003”Path is too tight for the declared cable bundle · default severity: warning
The smallest cross-section on the path is smaller than the bundle it must carry.