protonscr

do_restore in steampipe_fixups fails

protonopen
ValveSoftware/Proton#9746 · opened 2026-05-05 by richo · updated 2026-06-02 · 7 comments · github
1 matching comments, n / p to jump
Rricho 2026-05-05 github

On 1777366833 experimental-11.0-20260428 installed with bazzite, I can't launch games in steam. Attempting to launch proton via the command line, I get

lorgecomput 1 % STEAM_COMPAT_DATA_PATH=~/.proton/ ~/.steam/steam/steamapps/common/Proton\ -\ Experimental/proton run     ~ 
Traceback (most recent call last):                           
  File "/home/richo/.steam/steam/steamapps/common/Proton - Experimental/proton", line 2069, in <module>
    g_proton.do_steampipe_fixups()          
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^                                                                                          
  File "/home/richo/.steam/steam/steamapps/common/Proton - Experimental/proton", line 574, in do_steampipe_fixups          
    result_code = steampipe_fixups.do_restore(self.base_dir, fixups_json)                                                  
  File "/var/home/richo/.local/share/Steam/steamapps/common/Proton - Experimental/steampipe_fixups.py", line 90, in do_resto
re                                                                                                                          
    stat_result = os.lstat(this_file)
FileNotFoundError: [Errno 2] No such file or directory: '/home/richo/.steam/steam/steamapps/common/Proton - Experimental/fil
es/lib/wine/i386-windows/plugplay.exe' 

After doing a little research it appears that binary is just a shim, so after touching it, it failed in the same way with the next file in that manifest. I patched do_restore to ignore that FileNotFoundError and now games launch as expected.

Without a better understanding of what's going on I'm not sure if the correct behaviour here is to create those files if they don't exist, or not attempt to fix their permissions if they don't. Or maybe my proton install is broken and they should all exist. I'm happy to open a PR or diagnose further.

Ddanyalahmed1995 2026-05-30 github

The crash path seems to be do_restore() where every no_write_paths entry from steampipe_fixups.json still exists. I can reproduce the FileNotFoundError with a minimal manifest containing a missing no_write_paths entry, while existing entries still get their write bits removed as expected.

I am gonna check the smallest safe fix is to skip missing no_write_paths entries during restore, since empty_dirs already tolerates existing/ missing state.

Iivyl 2026-06-01 github

On 1777366833 experimental-11.0-20260428 installed with bazzite

What does "installed with bazzite" mean? The path ~/.steam/steam/steamapps/common/Proton - Experimental/proton looks like a regular Steam-installed Proton Experimental.

I've checked the version uploaded to Steam and:

ivyl exp % cat version
1777366833 experimental-11.0-20260428
                                                                                                                                                                                                                                                                                                                                                                                                                                             
ivyl exp % grep plugplay.exe steampipe_fixups.json
        "files/lib/wine/i386-windows/plugplay.exe",
        "files/lib/wine/x86_64-windows/plugplay.exe",
                                                                                                                                                                                                                                                                                                                                                                                                                                             
ivyl exp % ls -lah files/lib/wine/x86_64-windows/plugplay.exe
-r-xr-xr-x 1 ivyl ivyl 69K Apr 28 11:59 files/lib/wine/x86_64-windows/plugplay.exe
                                                                                                                                                                                                                                                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                                                                                                                                                                             
ivyl exp % ls -lah files/lib/wine/i386-windows/plugplay.exe
-r-xr-xr-x 1 ivyl ivyl 61K Apr 28 12:00 files/lib/wine/i386-windows/plugplay.exe

This suggests that something is wrong with your local download and I would recommend verifying your Proton installation via Steam.

steampipe_fixups.json is created as a last step in build. It only ever lists file that are there. We also test every build that goes live on default branches of all the Proton apps.

Trying to make restore more graceful doesn't sound like the right fix. It just hides that something went wrong with your local copy. All the attempts at reproducing the issue require people to purposefully break their Proton installations.

Instead preserving the install dir, seeing if the missing files are back after verifying the app in Steam and looking at steampipe's logs is what should be done here.

Ddanyalahmed1995 2026-06-01 github

All the attempts at reproducing the issue require people to purposefully break their Proton installations.

Yes this directly invalidates PRs #9834 and #9837.

If the installation itself is broken then attempts of Proton surviving missing files inside the installed Proton distribution instead of crashing was not the correct approach.

Should have investigated the root cause for why those files are missing locally instead.

Rricho 2026-06-02 github

What does "installed with bazzite" mean?

Sorry this was really unclear on my end. I'm using the Linux distro Bazzite which aims to give you a steamOS kinda experience on desktop. What I was trying to get at was that steam was here already when I arrived, I didn't do anything to insteall it myself.

I want to say I tried verifying Proton (via "Verify game files" in steam- let me know if there's something else I should have tried there).

I'm also totally happy to try to understand why those files are missing but superficially as a user it's hard for me to tease into it, for better or for worse the Steam + Proton experience has been very good and so the first time I heard about them was when their nonexistance broke everything. I did try to do some homework about what they're for and why they'd exist but "why are they missing" is a very hard question to intuit an answer for in this case.

Iivyl 2026-06-02 github

I want to say I tried verifying Proton (via "Verify game files" in steam- let me know if there's something else I should have tried there).

Did this help with anything?

I'm also totally happy to try to understand why those files are missing but superficially as a user it's hard for me to tease into it, for better or for worse the Steam + Proton experience has been very good and so the first time I heard about them was when their nonexistance broke everything. I did try to do some homework about what they're for and why they'd exist but "why are they missing" is a very hard question to intuit an answer for in this case.

What filesystem are you using for you library? Are the files actually missing? Are the paths correct?

For example for /home/richo/.steam/steam/steamapps/common/Proton - Experimental/files/lib/wine/i386-windows/plugplay.exe you can inspect each part of the path making sure it exists and is accessible.

You can also include the output of find -type f | xargs sha256sum run in ~/.steam/root/steamapps/common/Proton - Experimental so we can see how much is actually missing.

You can check logs in ~/.steam/root/logs/ to see if there are any hints of what might have gone wrong with downloads / verification.

Rricho 2026-06-02 github

Did this help with anything?

My memories are a little hazy, but I want to say no (I think patching steampipe_fixups.py was a last resort).

What filesystem are you using for you library? Are the files actually missing? Are the paths correct?

btrfs: /dev/nvme0n1p3 on /var/home type btrfs (rw,relatime,seclabel,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/home)

For example for /home/richo/.steam/steam/steamapps/common/Proton - Experimental/files/lib/wine/i386-windows/plugplay.exe you can inspect each part of the path making sure it exists and is accessible.

The directory '/home/richo/.steam/steam/steamapps/common/Proton - Experimental/files/lib/wine/i386-windows' existed but was missing several of the files that script checked for.

You can also include the output of find -type f | xargs sha256sum run in ~/.steam/root/steamapps/common/Proton - Experimental so we can see how much is actually missing.

I'm including it anyawy, but it appears that something has resolved this issue, I now have plugplay.exe in there.

You can check logs in ~/.steam/root/logs/ to see if there are any hints of what might have gone wrong with downloads / verification.

I'm looking through the logs now hoping to find something, I have plenty of

[2026-05-04 23:19:43] Traceback (most recent call last):                                                                                                                                           
[2026-05-04 23:19:43]   File "/var/home/richo/.local/share/Steam/steamapps/common/Proton - Experimental/proton", line 2069, in <module>                                                            
[2026-05-04 23:19:43]     g_proton.do_steampipe_fixups()                                                                                                                                           
[2026-05-04 23:19:43]     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^                                                                                                                                           
[2026-05-04 23:19:43]   File "/var/home/richo/.local/share/Steam/steamapps/common/Proton - Experimental/proton", line 574, in do_steampipe_fixups                                                  
[2026-05-04 23:19:43]     result_code = steampipe_fixups.do_restore(self.base_dir, fixups_json)                                                                                                    
[2026-05-04 23:19:43]   File "/var/home/richo/.local/share/Steam/steamapps/common/Proton - Experimental/steampipe_fixups.py", line 90, in do_restore                                               
[2026-05-04 23:19:43]     stat_result = os.lstat(this_file)                                                                                                                                        
[2026-05-04 23:19:43] FileNotFoundError: [Errno 2] No such file or directory: '/var/home/richo/.local/share/Steam/steamapps/common/Proton - Experimental/files/lib/wine/i386-windows/plugplay.exe'

Earlier in that same log I see:

[2026-05-04 23:18:59] steam.sh[2617]: Steam client's requirements are satisfied                                                                                                                    
[2026-05-04 23:18:59] CProcessEnvironmentManager is ready, 6 preallocated environment variables.                                                                                                   
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Startup - updater built Mar 13 2026 01:52:12                                                                                                           
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Startup - Steam Client launched with: '/var/home/richo/.local/share/Steam/ubuntu12_32/steam' '-srt-logger-opened' '' '' '-silent'                      
[2026-05-04 23:18:59] 05/04 23:18:59 minidumps folder is set to /tmp/dumps                                                                                                                         
[2026-05-04 23:18:59] 05/04 23:18:59 Init: Installing breakpad exception handler for appid(steam)/version(1773426488)/tid(2750)                                                                    
[2026-05-04 23:18:59] ERROR: ld.so: object '/usr/lib/extest/libextest.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.                                              
[2026-05-04 23:18:59] CProcessEnvironmentManager is ready, 6 preallocated environment variables.                                                                                                   
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Process started with command-line: '/var/home/richo/.local/share/Steam/ubuntu12_32/steam' '-child-update-ui' '-child-update-ui-socket' '8' '-srt-logger-opened' '' '' '-silent'^M                                                                                                                                                                         
[2026-05-04 23:18:59] 05/04 23:18:59 minidumps folder is set to /tmp/dumps                                                                                                                         
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Using update UI: console^M                                                                                                                             
[2026-05-04 23:18:59] 05/04 23:18:59 Init: Installing breakpad exception handler for appid(steam)/version(0)/tid(2751)                                                                             
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Create window^M                                                                                                                                        
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Loading cached metrics from disk (/var/home/richo/.local/share/Steam/package/steam_client_metrics.bin)                                                 
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Using the following download hosts for Public, Realm steamglobal                                                                                       
[2026-05-04 23:18:59] [2026-05-04 23:18:59] 1. https://client-update.fastly.steamstatic.com, /, Realm 'steamglobal', weight was 900, source = 'update_hosts_cached.vdf'                            
[2026-05-04 23:18:59] [2026-05-04 23:18:59] 2. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 400, source = 'update_hosts_cached.vdf'                            
[2026-05-04 23:18:59] [2026-05-04 23:18:59] 3. https://client-update.steamstatic.com, /, Realm 'steamglobal', weight was 1, source = 'baked in'                                                    
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Verifying installation...                                                                                                                              
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Verifying file sizes only                                                                                                                              
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Set percent complete: 0^M                                                                                                                              
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Set percent complete: -1^M                                                                                                                             
[2026-05-04 23:18:59] [2026-05-04 23:18:59] Set status message: Verifying installation...^M                                                                                                        
[2026-05-04 23:18:59] [----] Verifying installation...                                                                                                                                             
[2026-05-04 23:19:00] [2026-05-04 23:19:00] Verification complete                                                                                                                                  
[2026-05-04 23:19:00] UpdateUI: skip show logo                                                                                                                                                     
[2026-05-04 23:19:00] [2026-05-04 23:19:00] Destroy window^M                                                                                                                                       
[2026-05-04 23:19:00]                                                                                                                                                                              
[2026-05-04 23:19:00] Steam logging initialized: directory: /var/home/richo/.local/share/Steam/logs   

which mentions verifying the installation but it's unclear to me if that relates to steam itself, Proton as well, or some other thing.

My inclination is to close this issue since it appears I'm no longer affected by it and it's unclear to me how I would be able to reproduce it now.

Proton versions

Launch options