RX0550

Domain: Wire

Error message

a crossing names a writer node its session did not prove: %s (%s)

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

The story

A frame arrived on a trusted connection, but it claimed to come from somebody other than the node that connected. Here is the situation. When a node connects, it proves who it is through the handshake, its Hello, and the roster. From then on, everything on that session is supposed to come from that node. Each frame carries a source, a claim of who wrote it. If the source names a different node from the one the session proved, then someone is trying to speak in another node's name, and rush calls that a forgery. Nothing lands in any heap and nothing is read. The request is answered with permission denied. It is like a courier who showed an ID badge at the gate, then tries to deliver a letter signed by someone else. The first slot says whether the request was a letter or a read, and the second slot shows the node that was claimed and the node that was proved. If you control both sides, check that each frame is built with the sending node's own identity.

Text from the Rush engine's error catalogue.