In my application, faces messages are not rendered on UI, not sure what is exactly causing this issue. In the server log I see this:
WARNING: FacesMes
Make sure that you have placed <h:message for="...">
or <h:messages>
tag in your page, see also JSF 2 message and messages example
Another reason why a error message is not displayed could be, that the error occurs in the RENDER_RESPONSE phase of the JSF lifecycle. In this scenario a warning may be logged which says something like “FacesMessage(s) have been enqueued, but may not have been displayed“.
The reason in this case is, that in the render response phase the component tree is traversed and each component is rendered successively. When an error occurs after the message component finished rendering, it is not possible to add another message to it.
In this case a possible solution would be to place the message component at the end of the component tree. See also this blog.