RX0032

Domain: Engine

Error message

the state law at %s could not be materialized (%s)

In the message, %s marks a value that the engine fills in when it raises the error.

The story

The engine would not start because its map of legal moves was broken. Every being in rush moves between states, and the allowed moves are declared once, as data, in gate.feml. The engine reads that map at birth and checks it before running anything. This refusal covers two situations. One: the file could not be read at all, and the message shows the path and the failure. Two: the file was read, but the map itself has a flaw. There are two famous flaws. A dead-end state is a state you can enter but never leave, which is simply a hang with a name. And a terminal state with an outgoing edge is a finish line that you can walk back across, so it does not really finish anything. Both flaws are properties of the map, not of any particular run, so the engine finds them at birth by asking about every pair of states. Think of a subway map with a station that has no exit: better to discover it on paper than underground. If you see counts of dead-end or leaky-terminal states, edit gate.feml to remove them, and the engine will start.

Text from the Rush engine's error catalogue.