This one almost made me break my keyboard:
I have multiple fields in a JSF 2 (Rich Faces) Page. Each field with one <aj4:ajax> Element, which acts on value changes event="valueChange".

Each ajax request made the error messages from the other fields disappear, even if the value was still invalid.

The solution was to add the attribute ajaxRendered="false":

<rich:message id="messageId" for="myfield" styleClass="errorMessage" ajaxRendered="false"/>