The current Java client automatically creates a new session upon connection, unless an uri with a session is passed (i.e. passing http://localhost:8999/sessions/3 as URI will attach to session 3). This is not documented at all and I think it should be documented more explicitly. Also I purpose to add a method to LivyClientBuilder in order to explicitly set the session id to be used, without removing the actual solution that can still be used anyway. If the session id is set both in the property and the URI, an exception will be thrown.