Skip to content

WinApps installer fails with error 14 in manual mode on Ubuntu (Wayland) when HIDEF="on" #811

@TheAppleFreak

Description

@TheAppleFreak

What happened?

When attempting to set up WinApps, I kept receiving Error 14 while trying to connect to a Windows VM running on my NAS. The VM was properly configured according to the libvirt documentation, and when running the following command I was able to get a RDP window working perfectly fine:

xfreerdp3 /u:"user" /p:"password" /v:ipaddress /cert:tofu

However, when running the following FreeRDP command...

xfreerdp3 /u:"user" /p:"password" /v:ipaddress /cert:tofu /app:program:%windir%\system32\explorer.exe

My log was spammed with a bunch of messages similar to the following:

[16:18:39:768] [11540:00002d16] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement

I saw in the WinApps config that the HIDEF parameter was titled "FREERDP RAIL HIDEF" and figured it'd be worth seeing if disabling that would fix anything. After doing so and re-running the installer, it connected without any further issue and worked perfectly.

Your FreeRDP version and where you got it from

FreeRDP 3.14.0

Your Linux distribution and version

Ubuntu 24.04

Your winapps.conf

##################################
#   WINAPPS CONFIGURATION FILE   #
##################################

# INSTRUCTIONS
# - Leading and trailing whitespace are ignored.
# - Empty lines are ignored.
# - Lines starting with '#' are ignored.
# - All characters following a '#' are ignored.

# [WINDOWS USERNAME]
RDP_USER="user"

# [WINDOWS PASSWORD]
# NOTES:
# - If using FreeRDP v3.9.0 or greater, you *have* to set a password
RDP_PASS="password"

# [WINDOWS DOMAIN]
# DEFAULT VALUE: '' (BLANK)
RDP_DOMAIN=""

# [WINDOWS IPV4 ADDRESS]
# NOTES:
# - If using 'libvirt', 'RDP_IP' will be determined by WinApps at runtime if left unspecified.
# DEFAULT VALUE:
# - 'docker': '127.0.0.1'
# - 'podman': '127.0.0.1'
# - 'libvirt': '' (BLANK)
RDP_IP="properly.set.fqdn"

# [VM NAME]
# NOTES:
# - Only applicable when using 'libvirt'
# - The libvirt VM name must match so that WinApps can determine VM IP, start the VM, etc.
# DEFAULT VALUE: 'RDPWindows'
VM_NAME="RDPWindows"

# [WINAPPS BACKEND]
# DEFAULT VALUE: 'docker'
# VALID VALUES:
# - 'docker'
# - 'podman'
# - 'libvirt'
# - 'manual'
WAFLAVOR="manual"

# [DISPLAY SCALING FACTOR]
# NOTES:
# - If an unsupported value is specified, a warning will be displayed.
# - If an unsupported value is specified, WinApps will use the closest supported value.
# DEFAULT VALUE: '100'
# VALID VALUES:
# - '100'
# - '140'
# - '180'
RDP_SCALE="100"

# [MOUNTING REMOVABLE PATHS FOR FILES]
# NOTES:
# - By default, `udisks` (which you most likely have installed) uses /run/media for mounting removable devices.
#   This improves compatibility with most desktop environments (DEs).
# ATTENTION: The Filesystem Hierarchy Standard (FHS) recommends /media instead. Verify your system's configuration.
# - To manually mount devices, you may optionally use /mnt.
# REFERENCE: https://wiki.archlinux.org/title/Udisks#Mount_to_/media
REMOVABLE_MEDIA="/run/media"

# [ADDITIONAL FREERDP FLAGS & ARGUMENTS]
# NOTES:
# - You can try adding /network:lan to these flags in order to increase performance, however, some users have faced issues with this.
#   If this does not work or if it does not work without the flag, you can try adding /nsc and /gfx.
# DEFAULT VALUE: '/cert:tofu /sound /microphone +home-drive'
# VALID VALUES: See https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive"

# [DEBUG WINAPPS]
# NOTES:
# - Creates and appends to ~/.local/share/winapps/winapps.log when running WinApps.
# DEFAULT VALUE: 'true'
# VALID VALUES:
# - 'true'
# - 'false'
DEBUG="true"

# [AUTOMATICALLY PAUSE WINDOWS]
# NOTES:
# - This is currently INCOMPATIBLE with 'manual'.
# DEFAULT VALUE: 'off'
# VALID VALUES:
# - 'on'
# - 'off'
AUTOPAUSE="off"

# [AUTOMATICALLY PAUSE WINDOWS TIMEOUT]
# NOTES:
# - This setting determines the duration of inactivity to tolerate before Windows is automatically paused.
# - This setting is ignored if 'AUTOPAUSE' is set to 'off'.
# - The value must be specified in seconds (to the nearest 10 seconds e.g., '30', '40', '50', etc.).
# - For RemoteApp RDP sessions, there is a mandatory 20-second delay, so the minimum value that can be specified here is '20'.
# - Source: https://techcommunity.microsoft.com/t5/security-compliance-and-identity/terminal-services-remoteapp-8482-session-termination-logic/ba-p/246566
# DEFAULT VALUE: '300'
# VALID VALUES: >=20
AUTOPAUSE_TIME="300"

# [FREERDP COMMAND]
# NOTES:
# - WinApps will attempt to automatically detect the correct command to use for your system.
# DEFAULT VALUE: '' (BLANK)
# VALID VALUES: The command required to run FreeRDPv3 on your system (e.g., 'xfreerdp', 'xfreerdp3', etc.).
FREERDP_COMMAND=""

# [TIMEOUTS]
# NOTES:
# - These settings control various timeout durations within the WinApps setup.
# - Increasing the timeouts is only necessary if the corresponding errors occur.
# - Ensure you have followed all the Troubleshooting Tips in the error message first.

# PORT CHECK
# - The maximum time (in seconds) to wait when checking if the RDP port on Windows is open.
# - Corresponding error: "NETWORK CONFIGURATION ERROR" (exit status 13).
# DEFAULT VALUE: '5'
PORT_TIMEOUT="5"

# RDP CONNECTION TEST
# - The maximum time (in seconds) to wait when testing the initial RDP connection to Windows.
# - Corresponding error: "REMOTE DESKTOP PROTOCOL FAILURE" (exit status 14).
# DEFAULT VALUE: '30'
RDP_TIMEOUT="60"

# APPLICATION SCAN
# - The maximum time (in seconds) to wait for the script that scans for installed applications on Windows to complete.
# - Corresponding error: "APPLICATION QUERY FAILURE" (exit status 15).
# DEFAULT VALUE: '60'
APP_SCAN_TIMEOUT="60"

# WINDOWS BOOT
# - The maximum time (in seconds) to wait for the Windows VM to boot if it is not running, before attempting to launch an application.
# DEFAULT VALUE: '120'
BOOT_TIMEOUT="120"

# FREERDP RAIL HIDEF
# - This option controls the value of the `hidef` option passed to the /app parameter of the FreeRDP command.
# - Setting this option to 'off' may resolve window misalignment issues related to maximized windows.
# DEFAULT VALUE: 'on'
HIDEF="off"

Logs

❯ xfreerdp3 /u:"user" /p:"password" /v:ipaddress /cert:tofu /app:program:%windir%\system32\explorer.exe
[21:21:54:949] [13932:0000366f] [WARN][com.freerdp.client.x11] - [load_map_from_xkbfile]:     : keycode: 0x08 -> no RDP scancode found
[21:21:54:949] [13932:0000366f] [WARN][com.freerdp.client.x11] - [load_map_from_xkbfile]:     : keycode: 0x5D -> no RDP scancode found
[21:21:54:995] [13932:0000366f] [WARN][com.freerdp.core.nego] - [nego_enable_aad]: This build does not support AAD security, disabling.
[21:21:54:200] [13932:0000366f] [WARN][com.freerdp.crypto] - [verify_cb]: Certificate verification failure 'self-signed certificate (18)' at stack position 0
[21:21:54:200] [13932:0000366f] [WARN][com.freerdp.crypto] - [verify_cb]: CN = WIN-DIKJ59TBI6M
[21:21:54:204] [13932:0000366f] [ERROR][com.winpr.sspi.Kerberos] - [kerberos_AcquireCredentialsHandleA]: krb5_parse_name (Configuration file does not specify default realm [-1765328160])
[21:21:54:205] [13932:0000366f] [ERROR][com.winpr.sspi.Kerberos] - [kerberos_AcquireCredentialsHandleA]: krb5_parse_name (Configuration file does not specify default realm [-1765328160])
[21:21:54:322] [13932:0000366f] [WARN][com.freerdp.core.connection] - [rdp_client_connect_auto_detect]: expected messageChannelId=1009, got 1003
[21:21:54:322] [13932:0000366f] [WARN][com.freerdp.core.license] - [license_read_binary_blob_data]: license binary blob::type BB_ERROR_BLOB, length=0, skipping.
[21:21:54:392] [13932:0000366f] [WARN][com.freerdp.core.connection] - [rdp_client_connect_auto_detect]: expected messageChannelId=1009, got 1003
[21:21:54:411] [13932:0000366f] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Local framebuffer format  PIXEL_FORMAT_BGRA32
[21:21:54:411] [13932:0000366f] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Remote framebuffer format PIXEL_FORMAT_BGRA32
[21:21:54:429] [13932:0000366f] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [static] Loaded fake backend for rdpsnd
[21:21:54:431] [13932:0000366f] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel ainput
[21:21:54:432] [13932:0000366f] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpgfx
[21:21:54:432] [13932:0000366f] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel disp
[21:21:54:432] [13932:0000366f] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpsnd
[21:21:55:749] [13932:00003680] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [dynamic] Loaded fake backend for rdpsnd
[21:21:55:320] [13932:0000366f] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow
[21:21:55:320] [13932:0000366f] [WARN][com.freerdp.client.x11] - [xf_Pointer_Set]: handle=0
[21:21:56:702] [13932:00003680] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [dynamic] Loaded fake backend for rdpsnd
[21:21:56:989] [13932:0000367d] [ERROR][TODO] - [xf_rail_server_system_param]: TODO: implement
[21:21:56:989] [13932:0000367d] [ERROR][TODO] - [xf_rail_server_system_param]: TODO: implement
[21:21:56:087] [13932:00003680] [WARN][com.freerdp.channels.drdynvc.client] - [check_open_close_receive]: {Microsoft::Windows::RDS::DisplayControl:17} OnOpen=(nil), OnClose=0x7d368499a040
[21:21:56:088] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:125] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:138] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:146] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:157] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:162] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:169] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:221] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:221] [13932:0000366f] [ERROR][TODO] - [xf_rail_monitored_desktop]: TODO: implement
[21:21:56:221] [13932:0000367d] [ERROR][TODO] - [xf_rail_server_language_bar_info]: TODO: implement
[21:21:56:222] [13932:0000366f] [ERROR][TODO] - [xf_rail_notify_icon_common]: TODO: implement
[21:21:56:222] [13932:0000366f] [ERROR][TODO] - [xf_rail_notify_icon_common]: TODO: implement
[21:21:57:728] [13932:0000366f] [ERROR][TODO] - [xf_rail_notify_icon_common]: TODO: implement
[21:21:57:844] [13932:0000367d] [ERROR][TODO] - [xf_rail_server_execute_result]: RAIL exec error: execResult=RAIL_EXEC_E_FAIL NtError=0x2

[21:21:57:844] [13932:0000367d] [ERROR][com.freerdp.core] - [freerdp_abort_connect_context]: ERRCONNECT_CONNECT_CANCELLED [0x0002000B]
[21:21:57:845] [13932:0000366f] [INFO][com.freerdp.client.common] - [client_auto_reconnect_ex]: Network disconnect!
[21:21:57:851] [13932:00003680] [WARN][com.freerdp.channels.drdynvc.client] - [check_open_close_receive]: {Microsoft::Windows::RDS::DisplayControl:17} OnOpen=(nil), OnClose=0x7d368499a040
❯

Terms

  • I am running the latest version.
  • To the best of my knowledge, this is a bug and not a setup nor a FreeRDP problem.
  • I have checked for duplicate issues.
  • I agree to follow this project's Code of Conduct.

Metadata

Metadata

Assignees

No one assigned

    Labels

    freerdpIssue related to freerdpwontfixThis will not be worked on

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions