If we talk about the VERDE VDI client mode then we need to distinguish between two types of communication:
The RX-series GUI application is responsible for the first one. The issues which might happen at that stage can be caused by network (network down, DNS unable to resolve the hostname, host not available, etc.) or can be HTTP errors (e.g. invalid credentials, path not found, server error, etc.). Our GUI just quotes and displays the error messages returned by the underlying application framework used for the GUI development.
At the second stage the verde-client application gets involved. The verde-client can return following error codes:
21 - "invalid user"
23 - "user is not authorized"
24 - "password expired"
25 - "new auth required"
26 - "account is disabled"
27 - "account has expired"
28 - "account is locked"
29 - "invalid user or password"
32 - "error from MC"
40 - "failed to create desktop"
41 - "failed to get desktop info"
42 - "failed to write desktop info"
45 - "not a gold desktop"
46 - "desktop is not provisioned"
58 - "desktop failed to start"
59 - "desktop launch expired"
67 - "ticket expired"
70 - "abrupt termination"
85 - "internal error"
93 - "server unreachable"
95 - "address cannot be resolved"
96 - "network not available"
98 - "timeout"
99 - "server error"
101 - "cluster is at resource capacity"
102 - "server is offline"
103 - "no sessions found for user"
104 - "desktop not cached by any server"
105 - "launching of new sessions is suspended"
106 - "cluster is at license capacity"
107 - "not connected"
108 - "client has disconnected"
109 - "system configuration error"
You probably already know the list. The RX-series GUI currently does not handle these error codes in any way. When the verde-client terminates the GUI just returns to the logon screen.
In the RDP Client mode the situation is different. With RemoteApp support enabled we handle the errors which might happen when communicating with the WebAccess server. With and without RemoteApp support we handle numerous error situations reported by the underlying FreeRDP client and display appropriate error messages. Here they are:
ERRINFO_RPC_INITIATED_DISCONNECT # The disconnection was initiated by an administrative tool on the server in another session.
ERRINFO_RPC_INITIATED_LOGOFF # The disconnection was due to a forced logoff initiated by an administrative tool on the server in another session.
ERRINFO_IDLE_TIMEOUT # The idle session limit timer on the server has elapsed.
ERRINFO_LOGON_TIMEOUT # The active session limit timer on the server has elapsed.
ERRINFO_DISCONNECTED_BY_OTHER_CONNECTION # Another user connected to the server, forcing the disconnection of the current connection.
ERRINFO_OUT_OF_MEMORY # The server ran out of available memory resources.
ERRINFO_SERVER_DENIED_CONNECTION # The server denied the connection.
ERRINFO_SERVER_INSUFFICIENT_PRIVILEGES # The user cannot connect to the server due to insufficient access privileges.
ERRINFO_SERVER_FRESH_CREDENTIALS_REQUIRED # The server does not accept saved user credentials and requires that the user enter their credentials for each connection.
ERRINFO_RPC_INITIATED_DISCONNECT_BY_USER # The disconnection was initiated by an administrative tool on the server running in the users session.
ERRINFO_LOGOFF_BY_USER # The disconnection was initiated by the user logging off their session on the server.
ERRINFO_CB_ # Connection Broker error.
ERRINFO_LICENSE_ # License error.
ERRINFO_CONNECT_FAILED # Processing during the Channel Connection phase of the RDP Connection Sequence (see section 1.3.1.1 for an overview of the RDP Connection Sequence phases) has failed.
ERRINFO_BAD_CAPABILITIES # The capabilities received from the client in the Confirm Active PDU (section 2.2.1.13.2) were not accepted by the server.
ERRINFO_REMOTEAPP_NOT_ENABLED # The INFO_RAIL flag (0x00008000) MUST be set in the flags field of the Info Packet (section 2.2.1.11.1.1) as the session on the remote server can only host remote applications.
ERRINFO_GRAPHICS_MODE_NOT_SUPPORTED # The graphics mode requested by the client is not supported by the server.
ERRINFO_GRAPHICS_SUBSYSTEM_RESET_FAILED # The server-side graphics subsystem failed to reset.
ERRINFO_GRAPHICS_SUBSYSTEM_FAILED # The server-side graphics subsystem is in an error state and unable to continue graphics encoding.
ERRINFO_VC_DECODING_ERROR # An error occurred when processing dynamic virtual channel data ([MS-RDPEDYC] section 3.3.5).
ERRINFO_PEER_DISCONNECTED # The peer connection was lost.
ERRCONNECT_PRE_CONNECT_FAILED # A configuration error prevented a connection to be established.
ERRCONNECT_CONNECT_UNDEFINED # A undefined connection error occurred.
ERRCONNECT_POST_CONNECT_FAILED # The connection attempt was aborted due to post connect configuration errors.
ERRCONNECT_DNS_ERROR # The DNS entry could not be resolved.
ERRCONNECT_DNS_NAME_NOT_FOUND # The DNS host name was not found.
ERRCONNECT_CONNECT_FAILED # The connection failed.
ERRCONNECT_MCS_CONNECT_INITIAL_ERROR # The connection failed at initial MCS connect
ERRCONNECT_TLS_CONNECT_FAILED # The connection failed at TLS connect.
ERRCONNECT_AUTHENTICATION_FAILED # An authentication failure aborted the connection.
ERRCONNECT_INSUFFICIENT_PRIVILEGES # Insufficient privileges to establish a connection.
ERRCONNECT_CONNECT_CANCELLED # The connection was cancelled.
ERRCONNECT_SECURITY_NEGO_CONNECT_FAILED # The connection failed at negotiating security settings.
ERRCONNECT_CONNECT_TRANSPORT_FAILED # The connection transport layer failed.
ERRCONNECT_PASSWORD_EXPIRED # The password has expired and must be changed.
ERRCONNECT_PASSWORD_CERTAINLY_EXPIRED # The password has certainly expired and must be changed.
ERRCONNECT_CLIENT_REVOKED # The client has been revoked.
ERRCONNECT_KDC_UNREACHABLE # The KDC is unreachable.
ERRCONNECT_ACCOUNT_DISABLED # The account is disabled.
ERRCONNECT_PASSWORD_MUST_CHANGE # The password must be changed.
ERRCONNECT_LOGON_FAILURE # Logon failed.
ERRCONNECT_WRONG_PASSWORD # Wrong password supplied.
ERRCONNECT_ACCESS_DENIED # Access denied.
ERRCONNECT_ACCOUNT_RESTRICTION # Account restriction.
ERRCONNECT_ACCOUNT_LOCKED_OUT # Account locked out.
ERRCONNECT_ACCOUNT_EXPIRED # Account expired.
ERRCONNECT_LOGON_TYPE_NOT_GRANTED # Logon type not granted.