7.9.Errors and diagnostics

A blocking error stops composition: the script produces no keyframes until it is fixed. A diagnostic is non-blocking: composition proceeds, and the producer SHOULD show it to the author.

classconditionraised when
blockingunknown gloss, ambiguous gloss namea gloss name does not resolve, or matches more than one entry (§7.4)
blockingunknown expression, ambiguous expression namethe same for @name
blockingbad gloss speed, bad group args, bad group gap, bad spell args, bad pause, bad shift, bad mirror speed, bad buoy speed, bad compound speed, bad viseme args, bad viseme speed, bad expression alpha, bad expression rampan argument is non-numeric or out of its range
blockingreserved labela label contains ;
blockingbad group, empty group, no nested groups, group membera malformed group, or a member other than a gloss or $spell
blockingempty block, block member, block arityan empty body, a marker in a body, or the wrong number of {…} bodies
blockingunknown anchor sitea site outside §7.7.1
blockingexpression lanesa fourth concurrent expression
blockingcompound operand, compound shorthandan operand that is not one sign-producing item; ; without exactly two operands
blockingcompound-limitcompound nesting deeper than 32
blockingviseme-limit, viseme unreadablethe 512 / 128 limits; no readable syllable
blockingviseme-too-shorta sign too short for its compound mouth run
blockingmisplaced joina misplaced || (§7.7.6)
blockingunknown functionan unknown native $ function
blockingunknown user function, no rule matches, bad pattern, expansion too deep, expanded too many itemsuser-function expansion (§7.8)
blockingnothing to place, variation family in composed gloss, composed gloss chaincomposed-gloss rules (§7.4)
diagnosticviseme-guesseda heuristic syllable reading
diagnosticviseme-incompletesome syllables unreadable and dropped
diagnosticcompound-noopthe secondary contributes nothing

Hyphenated names (compound-limit, viseme-limit, viseme-too-short, viseme-guessed, viseme-incomplete, compound-noop) are machine-readable diagnostic kinds; the other entries name the condition. Message wording is not normative.