RX0653

Domain: Execution

Error message

%s: %s

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

The story

You asked rush for the next id of a holder, and it could not give one. Let's see how ids are handed out. Data dot next dot id looks at a holder and returns a whole number one above the highest id it holds, at any depth, and also above the last id this engine already handed out for it. That way two calls never give the same number. To do that, rush needs two things. A real holder, to count the ids inside it, and a place to keep its counter. If you pass something that is not a holder, say a plain number or a text, there are no ids to count and nowhere to keep a counter, so the call is refused. There is also a rare second case. The engine keeps its counters in a fixed table of slots, claimed without locks, and in principle that table could fill up. The first slot shows the operand, and the second explains what is wrong. In most cases, pass the holder itself, and the counter will work.

Text from the Rush engine's error catalogue.