When a session (both authenticated and anonymous) expires because of inactivity, and a user attempts to initiate an ajax call by clicking a link or a button, a ViewExpiredException will be thrown and the red error page will be shown.
In case of an authenticated session, the problem is agravated by the fact that the user is asked to log in first, and then is sent to an empty error page (as the error has already dissapeared from context).
There are ways to handle this exception to make it more user friendly:
- Have an exception handler that captures the exception and redirects the user to the same page again, with a message indicating what happened.
- Have an onAjaxError listener on the client side that parses the error response, and is able to determine when the error is caused by an expired session and handle it accordingly.
Zanata's currently short session timeout period doesn't help with this either.