Error message
In the message, %s marks a value that the engine fills in when it raises the error.
The story
Rush could not start its command line, because the list of commands was refused. Here is how it works. Rush's command line is not hard-coded. It is declared in the manifest, as a list of endpoints, and sophist, the API manager, reads that list when rush starts. If sophist finds a declaration it cannot register, it stops reading. A classic example is a verb that collides with a mirror verb: exclude, for instance, is a mirror of delete, so it folds into delete and could never be reached by its own word. In the past, rush went on with the half-read list, and every command declared after the bad one silently vanished. One bad line for exclude could make the spec command disappear, and the build would fail far from the cause. That was a trap, so now a refused catalogue means every invocation refuses, quoting sophist's own words. The first slot is what sophist refused, and the second says where the declaration lives. Open that declaration, fix the line, and the whole command line comes back.
Text from the Rush engine's error catalogue.
