RX0377

Domain: Wire

Error message

wire.feml declares no whole wire law: %s (%s)

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

The story

The file that defines the wire vocabulary does not agree with the code that writes frames, and rush refused to start the wire. Here is the story. A single declaration file lists everything about the wire: the header layout, the flags, the commands, the seal, and the device key. The engine reads it once. Then it checks that the file matches what the codec actually writes. If a header field was renamed, moved, or made wider, the two would disagree. The same goes for a byte order other than big, a checksum other than blake3, a command code or flag mask used twice, or a missing seal or device key entry. In any of these cases, the codec would be speaking a language the file does not describe, and the other side of the wire could not understand it. So the whole declaration is refused. The second slot names the first disagreement found. If you edited the wire declaration, compare that line against the codec. If you did not, you are looking at an engine defect that deserves a report.

Text from the Rush engine's error catalogue.