A method comprising: establishing a first remote keyboard-video-mouse session between a console application running at a computing device (100, 204) and a first server application executed by a controller on a server, wherein the first remote keyboard-video-mouse session is established via a first network connection between the computing device (100, 204) and the controller; detecting an error associated with the first remote keyboard-video-mouse session between the console application and the first server application; and in response to the error, establishing a second remote keyboard-video-mouse session between the console application and a second server application executed by one of an operating system on the server or a basic input/output system program on the server, wherein the second remote keyboard-video-mouse session is established via a second network connection between the computing device (100, 204) and the second server application, characterized in further comprising: detecting a second error associated with the second remote keyboard-video-mouse session based on a failure to receive a response, from the second server application, to a request for a network address of the controller, or to a request for performing the function of remote keyboard-video-mouse; and in response to the second error, re-establishing the first remote keyboard-video-mouse session between the console application and the first server application, wherein the first remote keyboard-video-mouse session is re-established via the second network connection between the computing device (100, 204) and the first server application. establishing a first remote keyboard-video-mouse session between a console application running at a computing device (100, 204) and a first server application executed by a controller on a server, wherein the first remote keyboard-video-mouse session is established via a first network connection between the computing device (100, 204) and the controller; detecting an error associated with the first remote keyboard-video-mouse session between the console application and the first server application; and in response to the error, establishing a second remote keyboard-video-mouse session between the console application and a second server application executed by one of an operating system on the server or a basic input/output system program on the server, wherein the second remote keyboard-video-mouse session is established via a second network connection between the computing device (100, 204) and the second server application, detecting a second error associated with the second remote keyboard-video-mouse session based on a failure to receive a response, from the second server application, to a request for a network address of the controller, or to a request for performing the function of remote keyboard-video-mouse; and in response to the second error, re-establishing the first remote keyboard-video-mouse session between the console application and the first server application, wherein the first remote keyboard-video-mouse session is re-established via the second network connection between the computing device (100, 204) and the first server application.