protonscr

[BUG] Input / Action Bindings: vrserver sniper runtime does not mount all steam storage paths

steamvropen bug
ValveSoftware/SteamVR-for-Linux#775 · opened 2025-03-21 by Spacefish · updated 2026-03-24 · 4 comments · github
SSpacefish 2025-03-21 github

When running a VR Game with OpenVR, which is installed in a Steam Library Path not in your home directory / steam default install location. I get the below errors in vrserver.txt

Fri Mar 21 2025 00:47:19.579153 [Error] - [Input] Error loading action manifest.
	App key: steam.app.667970
	Error: #ActionManifestError_FileNotFound
	Param: 
	Path: /data2/SteamLibrary/steamapps/common/VTOL VR/VTOLVR_Data/StreamingAssets/SteamVR/actions.json
Fri Mar 21 2025 00:54:45.315581 [Info] - AppInfoManager.ProcessConnected END
Fri Mar 21 2025 00:54:45.315593 [Info] - We don't yet have an input context. This should be okay, but noted.
Fri Mar 21 2025 00:54:45.316202 [Error] - [Input] Error loading action manifest.
	App key: steam.app.438100
	Error: #ActionManifestError_FileNotFound
	Param: 
	Path: /data/SteamLibrary/steamapps/common/VRChat/VRChat_Data/StreamingAssets/SteamVR/actions.json
Fri Mar 21 2025 00:54:45.316216 [Error] - [Input] LoadActionManifest failed. Could not find action manifest for app '431789: wine64-preloader' with key 'steam.app.438100'

if i look at the vrserver process, it seems to chroot in a sniper steam runtime steamrt sniper 3.0.20250306.120299
in the chroot i see in /proc/424791/root (424791 = vrserver) my home directory exists, however the /data and /data2 is not bind-mounted into that sniper runtime!

That´s why vrserver can´t load files like /data/SteamLibrary/steamapps/common/VRChat/VRChat_Data/StreamingAssets/SteamVR/actions.json as /data is missing!

Suggested fix: bind-mount ALL steam library data directories into the steam runtime pressure vessel, not only the one where the launched app (in this case steamVR) lives.

Kkisak-valve maintainer 2025-03-21 github

Hello @Spacefish, this reads like https://github.com/ValveSoftware/steam-runtime/issues/393. Similar to that issue report, you could try adding STEAM_COMPAT_MOUNTS=/path/to/unexpected/folder %command% to SteamVR's launch options as a workaround.

SSpacefish 2025-03-21 github

Hello @Spacefish, this reads like ValveSoftware/steam-runtime#393. Similar to that issue report, you could try adding STEAM_COMPAT_MOUNTS=/path/to/unexpected/folder %command% to SteamVR's launch options as a workaround.

Thanks for pointing me to that, that works and helps me a lot i added /data and /data2 to STEAM_COMPAT_MOUNTS

i tried sooo many things and i am happy that i finally found the root cause.. I did like 3-5 proton builds from source, with different game names and engine names in XrInit as i thought the issue might be that steam input does not detect the game, as the binding ui showed "wineopenxr test instance" as the game name all the time.. :(

IMHO it would be cool to at least add all configured Steam Library folders automatically to the pressure vessel,
as this problem will re-surface every time some game talks to any service / component running in a pressure vessel where the service tries to access a file in the games directory and the game was moved to another "steam library folder" by the user.

Maybe even only add it to appids which offer such services (like steamvr). Maybe by adding an environment variable via the steam app manifest to the part that set´s up the pressure vessel?

Probably more complicated that i think right now, as i don´t know the nuts and bolts inside the steamclient which setup up the pressure vesel / steam runtime.

PPatola 2026-03-24 github

Is STEAM_COMPAT_MOUNTS still working? Just grepped proton's source and I don't even see it here. I also took notice of PRESSURE_VESSEL_FILESYSTEMS_RW but it doesn't seem to work either.

edit: found it on pressure-vessel code

PPatola 2026-03-24 github

Being more descriptive. I tested with several different games, but House Flipper VR is an example here.

The game is installed under /jogos, thus: /jogos/SteamLibrary/steamapps/common/House Flipper VR and its prefix is /jogos/SteamLibrary/steamapps/compatdata/1194700,

When I run the game (proton 10.0-4), it can't access the action manifest. From the vrserver.txt log:

Tue Mar 24 2026 13:37:05.210580 [Info] - [Input] SetActionManifestPath: Remembering call from steam.app.1194700: file:///jogos/SteamLibrary/steamapps/common/House%20Flipper%20VR/HouseFlipper%20VR_Data/StreamingAssets/SteamVR/actions.json
Tue Mar 24 2026 13:37:05.210643 [Error] - [Input] Error loading action manifest.
        App key: steam.app.1194700
        Error: #ActionManifestError_FileNotFound
        Param: 
        Path: /jogos/SteamLibrary/steamapps/common/House Flipper VR/HouseFlipper VR_Data/StreamingAssets/SteamVR/actions.json
Tue Mar 24 2026 13:37:05.210666 [Info] - [Input] steam.app.1194700 (gamepad) attempting to load default config from file:///home/patola/.local/share/Steam/steamapps/common/SteamVR/resources/config/legacy_bindings_generic.json
Tue Mar 24 2026 13:37:05.210678 [Info] - [Input] steam.app.1194700 (oculus_touch) attempting to load default config from file:///home/patola/.local/share/Steam/steamapps/common/SteamVR/drivers/oculus/resources/input/legacy_bindings_touch.json
Tue Mar 24 2026 13:37:05.210686 [Info] - [Input] steam.app.1194700 (rift) attempting to load default config from file:///home/patola/.local/share/Steam/steamapps/common/SteamVR/drivers/oculus/resources/input/legacy_bindings_rift.json

But if I do use as launch options:
STEAM_COMPAT_MOUNTS="/jogos:/home:/games" PRESSURE_VESSEL_FILESYSTEMS_RW="/jogos:/games:/home" %command%

It still doesn't work, giving the very same error.

How do I get the game to access the action manifest?

I am not even using my Valve Index anymore. I have been using the Meta Quest 3 with Steam Link.

And of course, the file is there:

[13:54] [11008] [patola@risadinha patola]% ls -la /jogos/SteamLibrary/steamapps/common/House\ Flipper\ VR/HouseFlipper\ VR_Data/StreamingAssets/SteamVR/actions.json
-rwxr-xr-x 1 patola patola 3504 gru 27  2021 '/jogos/SteamLibrary/steamapps/common/House Flipper VR/HouseFlipper VR_Data/StreamingAssets/SteamVR/actions.json'