RX0556

Domain: Wire

Error message

a heartbeat is not a measurement: %s (%s)

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

The story

A heartbeat came back, but it could not be used to measure anything. Let's see what a good heartbeat looks like. Your node sends its send time, called t one, in eight bytes. The peer answers with t one again, plus its own receive time, t two, and its own send time, t three, in twenty-four bytes. When the answer arrives, you note t four. From these four times, rush computes the offset between the clocks and the delay of the trip. For that to be true, the shapes must be right and the times must make sense. If t four is earlier than t one, time ran backward. If the peer held the message longer than the whole round trip, the numbers do not add up. And if a single clock could not be read, there is nothing to stamp. Rush refuses all of these, because the skew gate must never judge a number that is not a measurement. The message names what was wrong. Check the peer's version, and make sure both clocks are readable and moving forward.

Text from the Rush engine's error catalogue.