With default config, Livy sessions are cleaned out after an hour of activity. This setting is controlled with livy.server.session.timeout (takes time in millisecond)
Upon Livy session timeout, Zeppelin's LivyInterpreter needs to be restarted. This is painful user experience.
This is a normal usage scenario & restarting LivyInterpreter should not be required.
One possible solution is that LivyInterpreter can create a new LivySession if none exists for the same current user.