UART is currently looking for a valid header and completely discards any remaining bytes in the buffer if the header is invalid. This can cause a infinite loop of message ignoring if the total message size that is currently being received is a multiple of the header size.