Skip to content

Error codes

This page as Markdown/docs/validation/error-codes.mdView .md

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

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.

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.

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.

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.

Units other than millimetres · default severity: error

This format is metric only. Every length is a number of millimetres.

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”

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.

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.

Circular reference between derived values · default severity: error

Two or more derived parameters depend on each other, so neither can be computed.

Parameter is outside its declared range · default severity: error

The value given falls outside the min/max the parameter itself declares.

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.

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.

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.

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.

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.

Parts overlap · default severity: error

Two solids occupy the same space. Usually a mate that needs an offset, or a missing joint.

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.

Feature falls outside the blank · default severity: error

A feature is positioned past the edge of the board it is cut into.

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.

Features intersect each other · default severity: warning

Two cuts in the same part overlap. Sometimes intentional, often a sign of a position error.

The assembled piece exceeds its declared envelope · default severity: error

The finished dimensions are larger than requirements.max_envelope allows.

No ground part · default severity: error

Nothing is held still, so the assembly has no fixed reference. Name one part in assembly.ground.

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.

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.

Fastener is too close to an end · default severity: error

End grain splits more readily than edge grain, so the end distance is larger.

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.

Fastener would break through the far face · default severity: error

The fastener is longer than the material behind it.

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.

Fasteners are spaced too closely · default severity: warning

Closely spaced fasteners along the grain can split a board.

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.

No fixture given for a hardware joint · default severity: error

Joint kinds other than butt and glue_only need a fixture:.

Part is longer than any available board · default severity: error

No stock length in the catalogue can produce this part.

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.

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.

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.

Sheet yield is poor · default severity: info

The parts nest badly on the sheet. A small dimension change may save a sheet.

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.

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.

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.

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.

Racking resistance is inadequate · default severity: warning

The frame has no panel, brace or fixed back to resist being pushed sideways.

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.

A required standard is not satisfied · default severity: error

The design lists a standard in requirements.must_satisfy and does not meet it.

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.

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.

Cable path is not continuous · default severity: error

A declared path has a gap: no grommet, notch or void connects two segments.

Service void is unreachable · default severity: warning

There is no access to the void once the piece is assembled.

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.