Between the time the client fetches the list of sessions and the time it actually connects (which could be very long when it needs to ask the user), the session might disappear or get modified. The server will report this by failing the reconnect with error code PROTO_ERR_SESSION_NOT_FOUND or PROTO_ERR_SESSION_MODIFIED.
Currently we handle these errors by silently trying again. This is a reasonable behaviour when the client is able to operate in a fully automatic mode. But if the user has been presented with a selection box, we should probably tell the user that the selected session wasn't available.
With the ThinLinc client configured to "Always ask" we did:
1. Start 2 sessions using the same user
2. Begin login with a 3rd session of that user, this will show the session selection dialog
3. While the dialog is open, use "tlctl session terminate .." to kill one of the 2 first sessions
4. In the client session selection dialog, choose to connect to the terminated session
As described above, this didn't show any errors or messages to the user, and an updated session selection dialog was shown.
> 2022-05-31T13:15:04: Response: 21: The selected session no longer exists on the server
> 2022-05-31 13:12:44 WARNING vsmserver.session: User tester tried to reconnect to vanished session