Serial flush - seems I can't get it to clear data

Is the incoming data terminated in some way, perhaps with a Carriage Return ?

If so, then why not read characters if they are available and add them to the String until you get the end of message marker, then use the message that you have accumulated ?

See Serial input basics - updated