Protontricks crashes if two accounts are sharing the same library folder but do not both own all games / game was installed on Windows
Describe the bug Me and a housemate use the same computer. Our Steam accounts are both set to install games on the same non-OS drive. Maybe this in and of itself is problematic, but assuming it isn't I continue. I have also been running a dual-boot setup with Windows, and have that same library shared between OSes. He has Apex Legends in his account, and installed it via Windows. I do not own Apex Legends. After he made this install, when I tried to launch Protontricks, it crashed, and the log shows it was looking for a file related to Apex Legends but didn't find it.
To Reproduce Steps to reproduce the behavior:
- Have a dual-boot setup with Windows and Linux.
- Have a separate storage drive set as a Steam library in both OSes (I mainly used this tutorial to set that up).
- Have two Steam accounts with different game libraries (although we are in a family share), set to both use that same library.
- Have one account install a free-to-play on Windows.
- Attempt to launch Protontricks from the other account on Linux.
- Crash.
Here is the console log:
protontricks (WARNING): Steam library folder /media/wilbur/SteamLibrary/SteamLibrary not found. Protontricks might not have access to the directory. ## Note added by me to the log: This is in relation to the library having been also used in Ubuntu-based distros. It has appeared before I set up this dual account thing, and Protontricks worked fine.
Traceback (most recent call last):
File "/home/wilbur/.local/bin/protontricks", line 8, in <module>
sys.exit(cli())
~~~^^
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/cli/main.py", line 32, in cli
main(args)
~~~~^^^^^^
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/cli/util.py", line 175, in wrapper
return cli_func(self, *args, **kwargs)
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/cli/main.py", line 298, in main
steam_apps = get_steam_apps(
steam_root=steam_root, steam_path=steam_path,
steam_lib_paths=steam_lib_paths
)
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/steam.py", line 1435, in get_steam_apps
steam_app = SteamApp.from_appmanifest(
manifest_path, steam_lib_paths=steam_lib_paths,
steam_path=steam_path
)
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/steam.py", line 210, in from_appmanifest
content = path.read_text(encoding="utf-8")
File "/usr/lib64/python3.13/pathlib/_local.py", line 546, in read_text
return PathBase.read_text(self, encoding, errors, newline)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.13/pathlib/_abc.py", line 632, in read_text
with self.open(mode='r', encoding=encoding, errors=errors, newline=newline) as f:
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.13/pathlib/_local.py", line 537, in open
return io.open(self, mode, buffering, encoding, errors, newline)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/run/media/wilbur/SteamLibrary/SteamLibrary/steamapps/appmanifest_1172470.acf'
(base) wilbur@wilbur-G5-5000:~$ protontricks
Traceback (most recent call last):
File "/home/wilbur/.local/bin/protontricks", line 8, in <module>
sys.exit(cli())
~~~^^
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/cli/main.py", line 32, in cli
main(args)
~~~~^^^^^^
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/cli/util.py", line 175, in wrapper
return cli_func(self, *args, **kwargs)
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/cli/main.py", line 298, in main
steam_apps = get_steam_apps(
steam_root=steam_root, steam_path=steam_path,
steam_lib_paths=steam_lib_paths
)
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/steam.py", line 1435, in get_steam_apps
steam_app = SteamApp.from_appmanifest(
manifest_path, steam_lib_paths=steam_lib_paths,
steam_path=steam_path
)
File "/home/wilbur/.local/lib/python3.13/site-packages/protontricks/steam.py", line 210, in from_appmanifest
content = path.read_text(encoding="utf-8")
File "/usr/lib64/python3.13/pathlib/_local.py", line 546, in read_text
return PathBase.read_text(self, encoding, errors, newline)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.13/pathlib/_abc.py", line 632, in read_text
with self.open(mode='r', encoding=encoding, errors=errors, newline=newline) as f:
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.13/pathlib/_local.py", line 537, in open
return io.open(self, mode, buffering, encoding, errors, newline)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/run/media/wilbur/SteamLibrary/SteamLibrary/steamapps/appmanifest_1172470.acf'
Expected behavior Protontricks might warn me that the compatdata folder or something for one of the apps was missing, but would still hopefully launch.
System (please complete the following information):
- Distro: Fedora 42 KDE Plasma Edition x86 64-bit
- Protontricks installation method: pip
- Protontricks version: 1.12.1
- Steam version: No beta chosen, using RPM package.
Additional context Ye, I know this is kind of convoluted and very much an edge case (if it was supposed to work at all), but I figured I'd report it anyway just in case.
Right now, I've added Apex Legends to my account and am attempting to install it from Linux as a workaround (I know it won't run).
Protontricks first looks for files with file names appmanifest_<appid>.acf in the Steam library folders. It then tries to read them one-by-one. It's the second one that's failing here, with Protontricks trying to read a file that was just listed in the directory but doesn't actually seem to exist.
I suspect it could be a symlink pointing to a nonexistent location under Linux. What is the result if you try running the following commands?
ls -lh /media/wilbur/SteamLibrary/SteamLibrary/steamapps
ls -lh /run/media/wilbur/SteamLibrary/SteamLibrary/steamapps
For example, the commands might list symlinks like this:
❯ ls -lh /bin/sh
lrwxrwxrwx 1 root root 4 May 7 18:46 /bin/sh -> bash*
Also, like the wiki article states, the whole "NTFS disk shared under Linux and Windows" business is unsupported by Steam, so I wouldn't put it past Steam to accidentally break itself and cause an issue like this. Still, it would be good to know what the cause is.
I've already kind of patched it up by owning the game on both accounts, so it'll take me awhile to get back to you.