RX0130

Domain: Execution

Error message

the rule held by %s refused the write: %s

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

The story

A rule you attached to a name just did its job: it refused a new value. Remember how rules work. When you bind a name with a colon and a rule, for example, a port equal to eight thousand eighty, with a rule that it must be between one and sixty five thousand five hundred thirty five, that rule becomes part of the name itself. It travels with it. Every later write is checked against the rule before the value is stored. This time, a new value broke the rule, and was never written. The message names the being and carries tungsten's own words about what was violated. Say you tried to set the port to seventy thousand. The rule says no, and the old value stays safe. That is the whole point of a rule: it guards the name for you, even when you forget. The fix is not to remove the rule. Give the name a value that the rule admits. Or, if the new value really belongs to something different, bind a new name for it.

Text from the Rush engine's error catalogue.