While it makes sense for CONNACK, is "connection failure" the appropriate description for all cases? Perhaps "operation failure" or "failure"?
1476 31 (0x1F) Byte Identifier of the Reason String. Followed by the UTF-8 encoded string representing the
1477 reason for the connection failure.