>> Steam games won't start because symbolic link is broken

Two days ago my Steam, gaming platform from Valve, went broken. As you may know Valve is developing its own Linux distro called "Steam OS". Anyways Steam isn't running fine under Linux. There are some problem with libraries which are shipped with Steam and don't work with the ones in your OS installed and I don't want to talk about all the error output Steam drops in a shell..... A friend told be the Steam Linux bug tracker counts about 1500 open cases today. There are thousands of threads about problems with steam and some are about the symbolic links.

The problem

The problem occurred two days ago. On this day I wanted to play a little bit CS-GO. But the game won't start. First a black screen then a "FATAL ERROR" telling me my steam client needs an update. Of course I tried it via the updater which is built into Steam and of course it didn't work. In this and this other people try to solve this issue but they are still not fixed.

INSERT PICTURE HERE Alt text

First solutions form the www...

My first thought was "Valve, what you did to Steam again?" Errors with games occurs sometime if you run Steam on Linux. But I tried about 5 games or more and all didn't worked well or even well. I did the obvious thins to fix this:

  • "Verify the game cache" of the game
  • Re-download the games and try them vanilla
  • Disable Steam-Overlay
  • Restart and Re-login Steam and PC in different combinations
  • Reinstall Steam and Remove all Steam files form system
  • Install the Steam beta version

Investigating the problem!

And as expected nothing worked. After a rage quit to bed on the next day I tried to read the horrible output of Steam in a shell. Some time later I saw this output multiple times:

/home/a123qwertz567//.steam/sdk32/steamclient.so
/home/a123qwertz567//.steam/sdk32/steamclient.so: cannot open shared object file: Too many levels of symbolic links

So I tried to figured out whats up there. Of course first thing to try is "KILL it with fire". So we go for:

rm /home/a123qwertz567//.steam/sdk32/steamclient.so

rm: cannot remove : Too many levels of symbolic links

Because I am still new in Linux (about 2-3 Years) after some research this could be a sign for a broken symbolic link. So lets have a look in the directory:

ls -l --color ~/.steam/sdk32

lrwxrwxrwx 1 a123qwertz567 a123qwertz567 39 Jul 22 17:35 /home/a123qwertz567//.steam/sdk32 -> /home/a123qwertz567/.steam/root/linux32

So this a symbolic link as well. So we check this link too:

ls -l --color ~/.steam/root/linux32

ls: cannot access /home/a123qwertz567//.steam/root/linux32: Too many levels of symbolic links

And as you see same output again so I checked the overall directory:

ls -l --color ~/.steam

total 20
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   33 Jul 22 17:35 bin -> /home/a123qwertz567//.steam/bin32
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   43 Jul 22 17:35 bin32 -> /home/a123qwertz567/.steam/root/ubuntu12_32
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   43 Jul 22 17:35 bin64 -> /home/a123qwertz567/.steam/root/ubuntu12_64
-rw-r--r-- 1 a123qwertz567 a123qwertz567 1776 Jul 22 17:38 registry.vdf
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   31 Jul 22 17:35 root -> /home/a123qwertz567/.steam/root
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   39 Jul 22 17:35 sdk32 -> /home/a123qwertz567/.steam/root/linux32
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   39 Jul 22 17:35 sdk64 -> /home/a123qwertz567/.steam/root/linux64
-rw-r--r-- 1 a123qwertz567 a123qwertz567    0 Jul 22 17:35 starting
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   31 Jul 22 17:35 steam -> /home/a123qwertz567/.steam/root
-rw-r--r-- 1 a123qwertz567 a123qwertz567    6 Jul 22 17:35 steam.pid
prw------- 1 a123qwertz567 a123qwertz567    0 Jul 22 10:00 steam.pipe
-rw------- 1 a123qwertz567 a123qwertz567 8822 Jun  7 18:32 steam_install_agreement.txt

Here we see a lot of symbolic links all pointing in this folder. The interesting line is this one:

ls -l --color ~/.steam
[...]
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   31 Jul 22 17:35 root -> /home/a123qwertz567/.steam/root
[...]

The other links refer to this one and how ever this link points on itself which will result in a loop.

Fix the "FATAL ERROR"

So what I did to fix this was to remove the old link and make a new one, linking to the "root" directory of my Steam installation.

rm ~/.steam/root 
ln -s ~/.local/share/Steam/ ~/.steam/root

After restarting Steam this was still NOT fixed. Looking in the directory again, shows the broken link restored to the loop again.

ls -l --color ~/.steam
[...]
lrwxrwxrwx 1 a123qwertz567 a123qwertz567   31 Jul 22 17:35 root -> /home/a123qwertz567/.steam/root
[...]

So I removed and re-linked it again while Steam was running. And there I fixed, or lets say tricked, it. All games worked fine again no issues at this moment. But restarting Steam still kills my new links. For this moment I am not satisfied doing this by hand every time I restart steam.

Note

My plan is to make a custom startscript for steam which will launch Steam and replace the symbolic links. You can find the script and some further information about this topic here.