The session is lazy loading, so if the user doesn't get the segment the ...

...destroy method throws session not started, and cannot be destroyed error. This checks whether the session is started or not and start it and tries the destroy