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.
| class | condition | raised when |
|---|---|---|
| blocking | unknown gloss, ambiguous gloss name | a gloss name does not resolve, or matches more than one entry (§7.4) |
| blocking | unknown expression, ambiguous expression name | the same for @name |
| blocking | bad 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 ramp | an argument is non-numeric or out of its range |
| blocking | reserved label | a label contains ; |
| blocking | bad group, empty group, no nested groups, group member | a malformed group, or a member other than a gloss or $spell |
| blocking | empty block, block member, block arity | an empty body, a marker in a body, or the wrong number of {…} bodies |
| blocking | unknown anchor site | a site outside §7.7.1 |
| blocking | expression lanes | a fourth concurrent expression |
| blocking | compound operand, compound shorthand | an operand that is not one sign-producing item; ; without exactly two operands |
| blocking | compound-limit | compound nesting deeper than 32 |
| blocking | viseme-limit, viseme unreadable | the 512 / 128 limits; no readable syllable |
| blocking | viseme-too-short | a sign too short for its compound mouth run |
| blocking | misplaced join | a misplaced || (§7.7.6) |
| blocking | unknown function | an unknown native $ function |
| blocking | unknown user function, no rule matches, bad pattern, expansion too deep, expanded too many items | user-function expansion (§7.8) |
| blocking | nothing to place, variation family in composed gloss, composed gloss chain | composed-gloss rules (§7.4) |
| diagnostic | viseme-guessed | a heuristic syllable reading |
| diagnostic | viseme-incomplete | some syllables unreadable and dropped |
| diagnostic | compound-noop | the 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.