an way to repair the steam install / updater service on older steam clients
What problem is this feature trying to solve?
for those of us that have to use the older ( better ) versions of steam, the service that handles updates / installations has broken for some ( and increasing in amount ) games, saying stuff like " corrupt download " or " content servers unavailable ", which lead me to using this program as an way to still update / install games on our older client versions. -- however, it only seems to sometimes fix the issue under certain conditions, and even then the result varies by how much.
hence the request of some way to repair whatever has been broken, similarly to verifying an game's file to make sure they're all there and functioning, but for fixing errors / issues within the older steam clients. -- in case they're needed, here's the commandlines i used to revert steam back to the last decent version way back in 2023: ( -forcesteamupdate -forcepackagedownload -overridepackageurl http://web.archive.org/web/20230531113527if_/media.steampowered.com/client -exitsteam ).
and here's the ones i've been using within powershell to acquire the files for games that keep failing to update / install: ( ./DepotDownloader -app 3602770 -depot 3602771 -manifest 1479572818763965580 -username [ insert username here ] -remember-password [ insert password here ] -dir "E:\SteamLibrary\steamapps\common\Shroom and Gloom Demo" -validate ). and: ( ./DepotDownloader -app 3602770 -depot 3602771 -manifest 1479572818763965580 -username [ insert username here ] -remember-password [ insert password here ] -validate ).
hopefully this'll at least help narrow down what's causing the issues to persist within steam despite having acquired and applied the files in the game folders successfully. -- here're the others also struggling with the recent issues: ( https://steamcommunity.com/groups/ClientDowngrades/discussions/0/827084449419114341/ ) and here ( https://steamcommunity.com/sharedfiles/filedetails/?id=2967855237 ).
not sure what else i can do to fix the issues at this point, so i'm here, asking the devs of the best hope to fix things if anything more can be done.
How would you like it to be solved?
if possible, an simple to follow method. -- i'm not too good with technical stuff, struggled enough even getting this program to run successfully that i ended up having to use video guides, and even then they were for older versions of the program, so i was still mostly lost.
maybe an automatic process? - run an exe, select some checkboxes, push an button, and let it do its thing. ( repairing issues / errors / etc within the steam client ).
Have you considered any alternative solutions
many, yet the only one to have even partially worked was this program. -- as it did fix an updating issue for 1 game.
though installation issues persist ( at least on the tested demo ).
Additional Information
anything else i could've listed, is already listed back up in the initial post.
Huh didn't know this existed, nor the communities surrounding old Steam versions (thanks!).
Just got around to discovering the root cause of this issue myself today, and while I can still use the new client for downloads, it's annoying, especially for me with my symlinks. Can't use this tool though because it requires a newer Win10 build than my daily driver (v2004) due to a kernel bug with CET in .net, ironically resulting in a similar problem to Win7 users with Steam.
As per the latest release of this tool, it seems to be the lack of zstd compression support in the old Steam client, which Valve seemed to start experimenting with in February, and the earliest game patch I saw affected by this was on May 9.
EDIT: Confirmed by Valve staff: https://steamcommunity.com/app/3238670/discussions/0/594022859095939680/?ctp=2#c594023708174098589
I doubt there will be a way to backport this support to the older client... but you never know.
Growing up things used to last a long time. Now, especially software, seems to barely last longer than a year or two. So beyond frustrating when compounded with all the enshittification everywhere, including hardware (modern motherboards barely have any PCI-E/SATA support and I can't even port my current hardware over!). It's killed this enthusiasts' enthusiasm.
I don't think there's a way to fix the client itself using DepotDownloader but it should be possible for DepotDownloader to "fix" broken updates/installs.
It simply needs a way to update the appid's appmanifest_#.acf automatically when you install an updated manifest.
For example, if you update a game that's using the new ZSTD compression on Win7 you'll end up with the StateFlags set to 1030 or 1542 for "Corrupt Download". If the game is manually updated with DepotDownloader, then you can bypass this error by updating the appmanifest manually. Specifically you'll want StateFlags to be 4, UpdateResult to be 0, StagingSize to be 0, buildid to match TargetBuildID, BytesStaged to match BytesToStage, BytesDownloaded to match BytesToDownload, and finally the InstalledDepots array will need to be updated with the updated manifest information.
If that appmanifest update can be done automatically by DepotDownloader, it can serve as an alternative to the Steam Client, and when the Steam Client is restarted it will correctly see that the game was updated and allow you to run it without going into an update death loop.
This thread let me actually get some games in my library working again after the zstd update!
I wrote a quick python script to perform the steps described by @nomakewan above. It takes a path to a manifest file and parses it. If a -username
This thread let me actually get some games in my library working again after the zstd update!
I wrote a quick python script to perform the steps described by @nomakewan above. It takes a path to a manifest file and parses it. If a -username parameter is provided after the manifest path, it downloads all the staged depots by calling DepotDownloader, and then rewrites the manifest file with the flags and installed depots updated.
If this does get put into DepotDownloader, then it does need to be worked on to not rely on "StagedDepot"; since i couldn't run the script on any of the .acf files in the steamapps folder and it wasn't part of the original instructions from nomakewan.
All i would get is:
File "Update_Manifest.py", line 44, in <module>
for depotkey in appstate['StagedDepots']:
KeyError: 'StagedDepots'
Every time i ran the script.
I had to use Coding from Machine Learning to remove the StagedDepots dependency, and it mostly worked; i still got an semi-error a few times (all in one day so far), where it "-validate" but didn't download anything, just gave out "Unable to download manifest" then validates the game, but most of the time it works:
Update_Manifest v3.py
After testing this with a similar way to get steam to stop trying to auto update on a game that was updated with DepotDownloader:
- Rename the game folder
- Uninstall the game on steam
- Download game with DepotDownloader
- Deleted the the files game inside the game folder (or steam will just try to re download the game)
- Put the download files in the game folder
- Rename the game folder to the original folder name
- Restart steam
- Install game on steam, so the game can then be verified in the download page
This time:
- Download game's update with Update_Manifest v3.py
- Rename the game folder
- Uninstall the game on steam
- Rename the game folder to the original folder name
- Restart steam
- Install game on steam, so the game can then be verified in the download pageIt didn't work, but i got a
.acffile that hadStagedDepots, and i still got an error:
Traceback (most recent call last):
File "Update_Manifest.py", line 44, in <module>
for depotkey in appstate['StagedDepots']:
RuntimeError: OrderedDict mutated during iteration
Two other thing with the Update_Manifest.py for anyone going to use the .py script:
- It doesn't download workshop items
- It seems to not download any other branch but the first/
publicone, since all i got wasUsing app branch: 'public'.on a game that was on thebetabranch.
Any method that requires you to uninstall the game on Steam is dead on arrival. There is absolutely zero reason to do that. To this day I am updating games in-place using DepotDownloader and modifying the AppManifest afterward and it works perfectly fine.
That's AI for you though!
Any method that requires you to uninstall the game on Steam is dead on arrival. There is absolutely zero reason to do that. To this day I am updating games in-place using DepotDownloader and modifying the AppManifest afterward and it works perfectly fine.
That's AI for you though!
If you mean:
Specifically you'll want StateFlags to be 4, UpdateResult to be 0, StagingSize to be 0
I haven't manually done it yet. Also, I've:
- Directly copy and pasted the full game that was downloaded from DepotDownloader and did the steps without "deleted the the files game"
- Use Update_Manifest v3.py and just restarted steam
- Use Update_Manifest v3.py when steam is off.
And they all didn't work.
I didn't really manually edit since it seems Update_Manifest v3.py changed the
StateFlagsto4and some other ones to0
Any method that requires you to uninstall the game on Steam is dead on arrival
To be more clear, the first longer method (that worked for stopping auto-updates) was using DepotDownloader alone.
Not sure what all of that means. What I'm saying is that there is no reason to uninstall your game just because an update is available. You can just install the single manifest update using DepotDownloader, then manually fix the AppManifest file as I specified earlier and Steam will be perfectly happy.
So if your automated "solution" requires uninstalling and reinstalling the game, then it is dead on arrival as a solution.
automated "solution" requires
The "automated solution" (that worked for me) was just using the DepotDownloader exe alone and downloading the full game.
You can just install the single manifest update using DepotDownloader
I was kinda was saying that, i just didn't:
manually fix the AppManifest file
It's shows the template on the logs when using the a .py:
DepotDownloader.exe -app (app id) -depot (deport id) -manifest (Manifest ID) -username (username) -dir "/(path to steam game)/" -validate
I did this manually a few times on the DepotDownloader exe, but again, not editing the file part.
The Update_Manifest v3.py can't get rid any auto-updates in the download page so far, it can just only downloads the updates.
My main point was that: Steam (for me) seem to picky when validating from the download page for stopping steam from trying to keep auto-updating the game, wanting a clean folder. But i haven't tried "manually fixing the AppManifest file" before.
And what you are not understanding here is that the steps I perform manually can just as easily be performed automatically, you just have to actually do them correctly. If I can update any game in my entire Steam library successfully without uninstalling it first, then it is just as possible to do those same steps in an automated fashion.
So, for the third time, any "solution" which requires that you first uninstall the game from Steam is dead on arrival. That is not a viable solution.
4 days late but just saw this in my e-mail.
@metapea was talking in reference to @NadnerbD's script, not you.
I also agree with them that if the automated script is deficient due to a configuration difference on someone's system, then it should be improved to handle these cases. Ease of use for everyone. I can't test it to see if it applies to me too as, previously stated, my Win10 build isn't compatible.. unless I find some way to rebuild the source without CET enabled.