At first glance, maybe the message is not complete by the time processing reads from the serial port.
You might change “if available” to a larger value (instead of greater than 0).
If your incoming message is a fixed length then that would probably do it.
If I am being realistic I will suggest using readStringUntil()