Why do I get stuck on a splash screen when starting a ThinLinc session?

When connecting to ThinLinc, users may be presented with a blue and white splash screen instead of a desktop session:

The underlying cause of this is poor support for running multiple desktop sessions as the same user, on most modern Linux distributions. See:

Why does starting multiple ThinLinc sessions as the same user sometimes fail?

If you encounter this problem, make sure you are not already logged in to the server as the same user as you are connecting to ThinLinc with. Often this means logging out at the server console (i.e. the physical monitor connected to the ThinLinc server itself).

This issue is currently being tracked as 8401 – Sessions often fail to start if logged in locally.

2 Likes

Note that this issue can also manifest itself in different ways. For example, if using GNOME 3 as your desktop environment, you may encounter the following error message when logging in via ThinLinc:

In this case the solution is the same - make sure you are logged out from the ThinLinc server console before attempting to connect with ThinLinc.

1 Like

Hello @aaron, just wanted to mention that the solution of having the user on the server machine logged out does not work anymore.
I have scoured the old posts on this issue and I still can’t log in remotely using the web client nor the desktop client. The same error message appear though.

Do you have any thoughts on this?

Hi @billmthin,

If the proposed solution above doesn’t work, then you are experiencing a different problem.

My suggestion here would be to create a new system user, and try logging in via ThinLinc with this account. If the same issue still happens with this new user, try setting the /profiles/show_intro parameter to false, and ensure that there is only one option listed in /profiles/order. This will ensure that the user goes straight through to the desktop rather than being presented with the intro text or profile chooser, which is where this issue can sometimes occur. Both parameters can be found in the configuration file /opt/thinlinc/etc/conf.d/profiles.hconf on the agent server(s).

If none of this helps, please check the log file at /var/opt/thinlinc/sessions/<username>/last/xinit.log for some indication as to what’s happening, or send it through to us to have a look for you.

Hi @aaron,

Thank you so much for your help. I followed your instructions judiciously but it seems to not work. The same “Oh no! Something has gone wrong” splash screen still shows up. I changed the parameters and restarted the server to make sure but it still doesn’t work.

Here are the logs for /var/opt/thinlinc/sessions/billmremote/last/xinit.log

xauth: file /var/opt/thinlinc/sessions/billmremote/10/Xauthority does not exist
tl-xinit: Waiting for Xserver to accept connections...

Xvnc ThinLinc release 4.18.0 build 3877 - built Dec 19 2024 08:45:33
Copyright (C) 1999-2024 TigerVNC Team and many others (see README.rst)
See [https://www.tigervnc.org](https://www.tigervnc.org) for information on TigerVNC.
Underlying X server release 12101014

(II) Initializing extension VNC-EXTENSION

Mon Feb 10 19:27:21 2025
vncext: VNC extension running!
vncext: Listening for VNC connections on local interface(s), port 5910
vncext: created VNC server for screen 0
(II) Initializing extension Generic Event Extension
(II) Initializing extension SHAPE
(II) Initializing extension MIT-SHM
(II) Initializing extension XInputExtension
(II) Initializing extension XTEST
(II) Initializing extension BIG-REQUESTS
(II) Initializing extension SYNC
(II) Initializing extension XKEYBOARD
(II) Initializing extension XC-MISC
(II) Initializing extension XFIXES
(II) Initializing extension RENDER
(II) Initializing extension RANDR
(II) Initializing extension COMPOSITE
(II) Initializing extension DAMAGE
(II) Initializing extension MIT-SCREEN-SAVER
(II) Initializing extension DOUBLE-BUFFER
(II) Initializing extension RECORD
(II) Initializing extension DPMS
(II) Initializing extension Present
(II) Initializing extension DRI3
(II) Initializing extension X-Resource
(II) Initializing extension XVideo
(II) Initializing extension XVideo-MotionCompensation
(II) Initializing extension GLX
(II) IGLX: Loaded and initialized swrast
(II) GLX: Initialized DRISWRAST GL provider for screen 0
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Unsupported high keycode 372 for name <I372> ignored
> X11 cannot support keycodes above 255.
> This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
[mi] mieq: warning: overriding existing handler (nil) with 0x593570 for event 2
[mi] mieq: warning: overriding existing handler (nil) with 0x593570 for event 3
Connections: accepted: 127.0.0.1::39974
VNCSConnST: closing 127.0.0.1::39974: Clean disconnection
EncodeManager: Framebuffer updates: 0
EncodeManager: Total: 0 rects, 0 pixels
EncodeManager: 0 B (1:-nan ratio)
Connections: closed: 127.0.0.1::39974
ComparingUpdateTracker: 0 pixels in / 0 pixels out
ComparingUpdateTracker: (1:-nan ratio)
tl-xinit: Xserver ready for clients.
--- System information ---
ThinLinc 4.18.0
Linux xdevs-Alienware-Aurora-R12 6.11.0-17-generic #17~24.04.2-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 20 22:48:29 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Ubuntu 24.04.2 LTS \n \l

--- End system information ---
Fontconfig warning: "/usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf", line 6: unknown element "reset-dirs"
Fontconfig warning: "/usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf", line 6: unknown element "reset-dirs"
Running /opt/thinlinc/etc/xstartup.d/01-tl-kinit.sh (Obtaining Kerberos ticket)
Running /opt/thinlinc/etc/xstartup.d/02-tl-dbus-launch.sh (Starting session D-Bus server)
Existing session D-Bus server found.
Setting initial D-Bus and systemd environment...
did not find extension DRI_Mesa version 1
did not find extension DRI_Mesa version 1
Running /opt/thinlinc/etc/xstartup.d/03-tl-x11-allow-localuser
localuser:billmremote being added to access control list
Running /opt/thinlinc/etc/xstartup.d/11-tl-set-title (Setting client window title)
Running /opt/thinlinc/etc/xstartup.d/12-tl-default-keyboard (Configuring default keyboard layout)
Setting default keyboard layout to "us"
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Unsupported high keycode 372 for name <I372> ignored
> X11 cannot support keycodes above 255.
> This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
Running /opt/thinlinc/etc/xstartup.d/15-tl-shadow-notify (Enabling notifications when the session is shadowed)
Running /opt/thinlinc/etc/xstartup.d/20-tl-select-profile.sh (Choosing a profile)
Running /opt/thinlinc/etc/xstartup.d/30-tl-xdg-user-dirs (Translating standard folders)
Running /opt/thinlinc/etc/xstartup.d/40-tl-mount-localdrives (Mounting local drives)
Running /opt/thinlinc/etc/xstartup.d/41-tl-lp-redir-launch (Setting up printer port redirection)
Running /opt/thinlinc/etc/xstartup.d/43-tl-pulseaudio-launch.sh (Starting session PulseAudio server)
W: [pulseaudio] main.c: Couldn't canonicalize binary path, cannot self execute.
Session PulseAudio server started. Redirecting applications...
Running /opt/thinlinc/etc/xstartup.d/50-tl-wait-smartcard (Waiting for smart card connection)
Stopping initial window manager...
Done.

Mon Feb 10 19:27:25 2025
Connections: accepted: 127.0.0.1::39988
SConnection: Client needs protocol version 3.8
SConnection: Client requests security type VncAuth(2)
VNCSConnST: Replacing existing connection
VNCSConnST: Server default pixel format depth 24 (32bpp) little-endian rgb888
Executing profile: gnome
Using XDG session: gnome
Updating D-Bus and systemd environment...
Executing XDG session command: /usr/bin/gnome-session --session=gnome
Profile command exited with exit code 143
Running /opt/thinlinc/etc/xlogout.d/tl-kdestroy.sh
Running /opt/thinlinc/etc/xlogout.d/tl-umount-localdrives
tl-xinit: client terminated and returned 0
tl-xinit: Terminating X server...
X I/O errortl-while-x11: lost Xserver connection, terminating child 121734 ...

tl-while-x11: lost Xserver connection, terminating child 121745 ...

Mon Feb 10 19:27:39 2025
VNCSConnST: closing 127.0.0.1::39988: Server shutdown
EncodeManager: Framebuffer updates: 37
EncodeManager: Tight:
EncodeManager: Solid: 62 rects, 2.43805 Mpixels
EncodeManager: 992 B (1:9831.6 ratio)
EncodeManager: Indexed RLE: 25 rects, 27.724 kpixels
EncodeManager: 6.48438 KiB (1:16.7464 ratio)
EncodeManager: Tight (JPEG):
EncodeManager: Full Colour: 81 rects, 523.154 kpixels
EncodeManager: 358.649 KiB (1:5.70061 ratio)
EncodeManager: Total: 168 rects, 2.98893 Mpixels
EncodeManager: 366.103 KiB (1:31.8967 ratio)
ComparingUpdateTracker: 1.93293 Mpixels in / 1.87643 Mpixels out
ComparingUpdateTracker: (1:1.03011 ratio)
tl-xinit: Xserver terminated and returned 0
tl-xinit: deleting ../10.1739233620.ended
tl-xinit: Session terminated. Exiting.

Thanks @billmthin,

Did you try creating a new user as well?

Yes, exactly! The log file is from the new user I just created.

There are a couple of lines in the log file which suggest to me that GNOME thinks it is starting up on a 3D (i.e. GPU accelerated) X server:

The X server started by ThinLinc is not 3D however, so I suspect this is what is causing it to crash.

A common reason for GNOME thinking it is starting on a 3D X server, is that there is already one running as the same user. But since you’re not logged in anywhere else as this user, I don’t see how that would be the case. You could try checking the process list with ps if you wanted to make sure though.

Otherwise, it’s not clear to me what’s happening, I’m afraid. If you’re using an OEM version of Ubuntu (i.e. provided by your hardware vendor), then perhaps they are doing something non-standard with their desktop sessions, I’m not sure.

A completely different approach would be to use a different desktop environment altogether, something more lightweight such as MATE or XFCE. Since there are default profiles already configured for these in ThinLinc, it should be sufficient to just install the relevant packages for your distribution.

Hope that helps.