This article contains information to help administrators troubleshoot issues with Citrix Receiver for Linux.
You may encounter the following connection issues.
Citrix Receiver may not have GStreamer plugins to handle a requested format. This normally causes the server to request a different format. Sometimes the initial check for a suitable plugin incorrectly indicates one is present. This is normally detected and causes an error dialog to appear on the server indicating that Windows Media Player encountered a problem while playing the file. Retrying the file within the session typically works because the format is rejected by Citrix Receiver, and as a result, the server will either request another format or render the media itself.
In a few situations the fact that there is no suitable plugin is not detected and the file is not played correctly, despite the progress indicator moving as expected in Windows Media Player.
To avoid this error dialog or failure to play in future sessions:
If, when establishing a connection to a Windows server, a dialog box appears with the message “Connecting to server…” but no subsequent connection window appears, you may need to configure the server with a Client Access License (CAL). For more information about licensing, see Licensing Your Product.
Sometimes reconnecting to a session with a higher color depth than that requested by Receiver causes the connection to fail. This is due to a lack of available memory on the server. If the reconnection fails, Receiver will try to use the original color depth. Otherwise, the server will try to start a new session with the requested color depth, leaving the original session in a disconnected state. However, the second connection may also fail if there is still a lack of available memory on the server.
Citrix recommends that you configure DNS (Domain Name Server) on your network to enable you to resolve the names of servers to which you want to connect. If you do not have DNS configured, it may not be possible to resolve the server name to an IP address. Alternatively, you can specify the server by its IP address, rather than by its name, but note that TLS connections require a fully qualified domain name, not an IP address.
cat wpad.dat | ./pacexec pac.js FindProxyForURL http://hostname hostname 2>&1 | grep “undeclared variable”
If you get no output, there is a serious issue with the wpad.dat file on the server that you need to investigate. However, if you see output such as “assignment to undeclared variable ...” you can fix the problem. Open pac.js and for each variable listed in the output, add a line at the top of the file in the following format, where “...” is the variable name.
If a session does not start until you move the mouse, there may be a problem with random number generation in the Linux kernel. To work around this, run an entropy-generating daemon such as rngd (which is hardware-based) or haveged (from Magic Software).
To configure a single serial port, add the following entries in the $ICAROOT/config/module.ini configuration file:
To configure two or more serial ports, add the following entries in the $ICAROOT/config/module.ini configuration file:
LastComPortNum=2 ComPort1=<device1> ComPort2=<device2>
An error dialog may appear indicating an "Error in connection: A protocol error occurred while communicating with the Authentication Service". A number of problems may cause this error condition, including:
Screen tearing occurs when parts of two (or more) different frames appear on the screen at the same time, in horizontal blocks. This is most visible with large areas of fast changing content on screen. Although the data is captured at the VDA in a way that avoids tearing, and the data is passed to the client in a way that doesn't introduce tearing, X11 (the Linux/Unix graphics subsystem) does not provide a consistent way to draw to the screen in a way that prevents tearing.
To prevent screen tearing, Citrix recommends the standard approach which synchronizes application drawing with the drawing of the screen; that is, wait for vsvnc, to initiate the drawing of the next frame. There are a number of options when using Linux, depending on the graphics hardware you have on the client and what window manager you are using. These options are divided into two groups of solutions:
compton --vsync opengl --vsync -aggressive
If you are using a non-English language keyboard, the screen display may not match the keyboard input. In this case, you should specify the keyboard type and layout that you are using. For more information about specifying keyboards, see Control keyboard behavior.
Some window managers continuously report the new window position when moving a window, which can result in excessive redrawing. To fix this problem, switch the window manager to a mode that draws only window outlines when moving a window.
Receiver creates window icons that work with most window managers, but are not fully compatible with the X Inter-Client Communication Convention.
To provide full icon compatibility
The cursor can be difficult to see if it is the same or similar in color to the background. You can fix this by forcing areas of the cursor to be black or white.
To change the color of the cursor
CursorStipple=ffff,ffff (to make the cursor black)
CursorStipple=0,0 (to make the cursor white)
When you move the mouse into or out of a connection window, the colors in the non-focused window may start to flash. This is a known limitation when using the X Windows System with PseudoColor displays. If possible, use a higher color depth for the affected connection.
Users have the option of using 256 colors when connecting to a server. This option assumes that the video hardware has palette support to enable applications to rapidly change the palate colors to produce animated displays.
TrueColor displays have no facility to emulate the ability to produce animations by rapidly changing the palette. Software emulation of this facility is expensive both in terms of time and network traffic. To reduce this cost, Receiver buffers rapid palette changes, and updates the real palette only every few seconds.
Receiver uses EUC-JP or UTF-8 character encoding for Japanese characters, while the server uses SJIS character encoding. Receiver does not translate between these character sets. This can cause problems displaying files that are saved on the server and viewed locally, or saved locally and viewed on the server. This issue also affects Japanese characters in parameters used in extended parameter passing.
Full-screen sessions span all monitors by default, but a command-line multi-monitor display control option, -span, is also available. It allows full-screen sessions to span multiple monitors.
Desktop viewer toolbar functionality allows you to switch a session between windowed and full screen session window, including multi-monitor support for the intersected monitors. For details, see Improving user experience.
The - span option has the following format:
If h is specified, a list of monitors is printed on stdout. And if that is the whole option value, wfica then exits.
If o is specified, the session window will have the override-redirect redirect attribute.
If a is specified, Receiver tries to create a session that covers all monitors.
Receiver assumes that the rest of the -span option value is a list of monitor numbers. A single value selects a specific monitor, two values select monitors at the top-left and bottom-right corners of the required area, four specify monitors at the top, bottom, left and right edges of the area.
Assuming o was not specified, wfica will use the _NET_WM_FULLSCREEN_MONITORS message to request an appropriate window layout from the window manager, if it is supported. Otherwise, it will use size and position hints to request the desired layout.
The following command can be used to test for window manager support:
xprop -root | grep _NET_WM_FULLSCREEN_MONITORS
If there is no output, there is no support. If there is no support, you may need an override-redirect window. You can set up an override-redirect window using -span o.
To make a session that spans multiple monitors from the command line:
/opt/Citrix/ICAClient/wfica -span h
A list of the numbers of the monitors currently connected to the user device is printed to stdout and wfica exits.
/opt/Citrix/ICAClient/wfica -span [w[,x[,y,z]]]
where w, x, y and z are monitor numbers obtained in step 1 above and the single value w, specifies a specific monitor, two values w and x specify monitors at the top-left and bottom-right corners of the required area, and four values w, x, y and z specify monitors at the top, bottom, left and right edges of the area.
export WFICA_OPTS="-span a"Note that this change affects both XenApp and XenDesktop sessions.
This occurs because the client-side system UI is hidden and the Keyboard Transparency feature disables the usual keyboard command, for example Alt+Tab, sending the command to the server instead.
To work around this, use CTRL+F2 to turn off the Keyboard Transparency feature temporarily until the focus next returns to the session window. An alternative workaround is to set TransparentKeyPassthrough to No in $ICAROOT/config/module.ini. This disables the Keyboard Transparency feature, however you may have to override the ICA file by adding this setting in the All_regions.ini file.
Server-client content redirection is enabled in wfclient.ini. This causes a local application to run. To disable server-client content redirection, see the Setting up server-client content redirection section in Improving the user experience.
Browsers other than Firefox and Chrome may require configuration before you can connect to a published resource. If you are connecting through the Web Interface, you may be able to access the Web Interface home page with the list of resources. However, when trying to access a resource by clicking an icon on the page, your browser prompts you to save the ICA file.
Details vary among browsers, but you can set up the MIME data types in the browser so that the $ICAROOT/wfica is executed as a helper application when the browser encounters data with the application/x-ica MIME type or an .ica file.
If you have problems using a specific web browser, set the environment variable BROWSER to specify the local path and name of the required browser before running setupwfc.
Try enabling the ICA plug-in.
Try disabling the ICA plug-in.
You may also encounter the following additional issues.
You can use the wfica program to log when it has received a command to terminate the session from the server.
To record this information through the syslog system, add SyslogThreshold with the value 6 to the [WFClient] section of the configuration file. This enables the logging of messages that have a priority of LOG_INFO or higher. The default value for SyslogThreshold is 4 (=LOG_WARNING).
Similarly, to have wfica send the information to standard error, add PrintLogThreshold with the value 6 to the [WFClient] section. The default valuefor PrintLogThreshold is 0 (=LOG_EMERG).
Refer to your operating system's documentation for instructions on configuring your syslog system.
For each entry in wfclient.ini, there must be a corresponding entry in All_Regions.ini for the setting to take effect. In addition, for each entry in the [Thinwire3.0], [ClientDrive], and [TCP/IP] sections of wfclient.ini, there must be a corresponding entry in canonicalization.ini for the setting to take effect. See the All_Regions.ini and canonicalization.ini files in the $ICAROOT/config directory for more information.
If a published application needs to access a serial port, the application may fail (with or without an error message, depending on the application itself) if the port has been locked by another application. Under such circumstances, check that there are no applications that have either temporarily locked the serial port or have locked the serial port and exited without releasing it.
To overcome this problem, stop the application that is blocking the serial port; in the case of UUCP-style locks, there may be a lock file left behind after the application exits. The location of these lock files depends on the operating system used.
If Receiver does not start and the error message “Application default file could not be found or is out of date” appears, this may be because the environment variable ICAROOT is not defined correctly. This is a requirement if you installed Receiver to a non-default location. To overcome this problem, Citrix recommends that you do one of the following:
Define ICAROOT as the installation directory.
To check the ICAROOT environment variable is defined correctly, try starting Receiver from a terminal session. If the error message still appears, it is likely that the ICAROOT environment variable is not correctly defined.
Reinstall Receiver to the default location. For more information about installing Receiver, see Install and set up.
If Receiver was previously installed in the default location, remove the /opt/Citrix/ICAClient or $HOME/ICAClient/platform directory before reinstalling.
If your window manager uses the same key combinations to provide native functionality, your key combinations might not function correctly. For example, the KDE window manager uses the combinations from CTRL+SHIFT+F1 to CTRL+SHIFT+F4 to switch between desktops 13 to 16. If you experience this problem, try the following solutions:
This procedure ensures that ASCII characters are correctly sent to remote virtual desktops with Croatian keyboard layouts.
strings libctxssl.so | grep "Citrix SSLSDK"
You can also run this command on AuthManagerDaemon or PrimaryAuthManager
Choose the best-matching server layout from the list in $ICAROOT/config/module.ini.
These errors might occur if you configured a connection entry incorrectly.
E_MISSING_INI_SECTION - Verify the configuration file: "...". The section "..." is missing in the configuration file.
The configuration file was incorrectly edited or is corrupt.
E_MISSING_INI_ENTRY - Verify the configuration file: "...". The section "..." must contain an entry "...".
The configuration file was incorrectly edited or is corrupt.
E_INI_VENDOR_RANGE - Verify the configuration file: "...". The X server vendor range "..." in the configuration file is invalid.
The X Server vendor information in the configuration file is corrupt. Contact Citrix.
These errors might occur if you edited wfclient.ini incorrectly.
E_CANNOT_WRITE_FILE - Cannot write file: "..."
There was a problem saving the connection database; for example, no disk space.
E_CANNOT_CREATE_FILE - Cannot create file: "..."
There was a problem creating a new connection database.
E_PNAGENT_FILE_UNREADABLE - Cannot read XenApp file "...": No such file or directory.
— Or —
Cannot read XenApp file "...": Permission denied.
You are trying to access a resource through a desktop item or menu, but the XenApp file for the resource is not available. Refresh the list of published resources by selecting Application Refresh on the View menu, and try to access the resource again. If the error persists, check the properties of the desktop icon or menu item, and the XenApp file to which the icon or item refers.
These errors may occur if your deployment uses proxy auto-configuration (PAC) files to specify proxy configurations.
Proxy detection failure: Improper auto-configuration URL.
An address in the browser was specified with an invalid URL type. Valid types are http:// and https://, and other types are not supported. Change the address to a valid URL type and try again.
Proxy detection failure: .PAC script HTTP download failed: Connect failed.
Check if an incorrect name or address was entered. If so, fix the address and retry. If not, the server could be down. Retry later.
Proxy detection failure: .PAC script HTTP download failed: Path not found.
The requested PAC file is not on the server. Either change this on the server, or reconfigure the browser.
Proxy detection failure: .PAC script HTTP download failed.
The connection failed while downloading the PAC file. Reconnect and try again.
Proxy detection failure: Empty auto-configuration script.
The PAC file is empty. Either change this on the server, or reconfigure the browser.
The PAC executable or the pac.js text file is missing. Reinstall Receiver.
Proxy detection failure: Improper result from proxy auto-configuration script.
A badly formed response was received from the server. Either fix this on the server, or reconfigure the browser.
This topic contains a list of other common error messages you may see when using Receiver.
An error occurred. The error code is 11 (E_MISSING_INI_SECTION). Please refer to the documentation. Exiting.
When running Receiver from the command line, this usually means the description given on the command line was not found in the appsrv.ini file.
E_BAD_OPTION - The option "..." is invalid.
Missing argument for option “...”.
E_BAD_ARG - The option "..." has an invalid argument: "...".
Invalid argument specified for option “...”.
E_INI_KEY_SYNTAX - The key "..." in the configuration file "..." is invalid.
The X Server vendor information in the configuration file is corrupt. Create a new configuration file.
E_INI_VALUE_SYNTAX - The value "..." in the configuration file "..." is invalid.
The X Server vendor information in the configuration file is corrupt. Create a new configuration file.
E_SERVER_NAMELOOKUP_FAILURE - Cannot connect to server "...".
The server name cannot be resolved.
Cannot write to one or more files: "...". Correct any disk full issues or permissions problems and try again..
Check for disk full issues, or permissions problems. If a problem is found and corrected, retry the operation that prompted the error message.
Server connection lost. Reconnect and try again. These files might be missing data: "...".
Reconnect and retry the operation that prompted the error.
If you are experiencing problems using Receiver, you may be asked to provide Technical Support with diagnostic information. This information assists this team in trying to diagnose the problem and offer assistance to rectify it.
To obtain diagnostic information about Receiver
A file is generated that contains detailed diagnostic information, including version details, the contents of Receiver's configuration files, and the values of various system variables.