RX0721

Domain: Execution

Error message

data.put[%s, …] refused: %s

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

The story

You called data put again, and once more the engine said no, for a different reason this time. Put is the door that lands each member under its key. That sentence holds two requirements. First, the holder must be keyed, a map, something that has keys. Second, every member you hand over must come with a label, so there is a key to land under. So what went wrong? Either you pointed put at a list, which holds plain items with no keys, so the right door for a list is data add. Or you handed a value with no label, and the engine has no key under which to land it. Imagine a mailroom with pigeonholes labeled by name: a letter with no name on it has nowhere to go, and a list is just a stack with no pigeonholes. The message gives you the holder name and tells you which of the two problems it was. Fix it either way. Use a keyed holder, or add the label to the value. Then put will land everything neatly.

Text from the Rush engine's error catalogue.