Fix: SteamCMD 'Failed to install app 90 (No subscription)'

December 17, 2025 Daemon666 7 min read 11 vizualizări

You try to download the CS 1.6 dedicated server and SteamCMD stops with:

Error! App '90' state is 0x... after update job.
Failed to install app '90' (No subscription)

"No subscription" means the Steam account you are logged in as does not own a licence for App 90. The near-universal cause is logging in with your personal Steam account. App 90 (Half-Life Dedicated Server) is an anonymous app — personal accounts generally do not have a subscription to it, so Steam refuses. The fix is to log in anonymously.

1. Log in as anonymous, not your account

Run SteamCMD with +login anonymous. This is the single most common fix:

./steamcmd.sh +force_install_dir /home/steam/hlds \
  +login anonymous \
  +app_set_config 90 mod cstrike \
  +app_update 90 validate \
  +quit

If you had previously logged in with a personal account, SteamCMD may have cached that session. Force it back to anonymous, and if it still uses the old login, clear the cache (step 3). Note the ordering of arguments too: +login anonymous must come before +app_update 90, because SteamCMD executes them left to right and the app command needs an active session to run against. A command with the login placed after the update authenticates too late and fails.

2. Set the mod explicitly

App 90 is a multi-mod app; CS 1.6 ships as the cstrike mod inside it. app_set_config 90 mod cstrike tells SteamCMD which mod to pull. Without it, the anonymous download frequently grabs only the base Half-Life files and skips cstrike/, which looks like a partial "No subscription"-style failure even when it is not. Always include it, and run the whole command twice — App 90's anonymous download is notorious for completing the base content on the first pass and filling in cstrike/ only on the second.

3. Clear a poisoned session or manifest

If anonymous login still errors, a stale cached login or a broken app manifest is the cause. Remove the cache and retry:

rm -rf ~/Steam/appcache
rm -f /home/steam/hlds/steamapps/appmanifest_90.acf

Then re-run the anonymous command from step 1. Deleting appmanifest_90.acf forces SteamCMD to re-evaluate the install from scratch rather than trusting a corrupt state file.

4. Rule out a genuinely broken download server

Occasionally the error is transient — a Steam content server in your region is failing. Two things help:

  • Re-run the command; app_update resumes and often succeeds on the next attempt.
  • If it fails repeatedly at the same point, the download is interrupted, not unlicensed — a state like 0x402 means the transfer stopped, and re-running resumes cleanly.

You can also point SteamCMD at a specific content-server region if your default one is unhealthy, but for App 90 that is rarely necessary — the anonymous login fix resolves the overwhelming majority of "No subscription" reports.

5. Not a Steam Guard problem

Because the error mentions accounts, people sometimes chase Steam Guard, two-factor codes, or password resets. None of that applies here: App 90 is an anonymous app and the correct account is no account. If SteamCMD is prompting you for a Steam Guard code, you are still trying to log in with a personal account — stop, and use +login anonymous. There is no scenario where downloading the CS 1.6 dedicated server requires your personal credentials.

6. Do not confuse it with the 32-bit runtime error

"No subscription" is a download failure. If the download succeeds but the server will not start, that is a different problem — usually missing 32-bit libraries, not a subscription issue. See the full Linux install guide for the multilib packages HLDS needs.

Common errors

  • Failed to install app '90' (No subscription) — you logged in with a personal account. Use +login anonymous.
  • Downloads Half-Life but no cstrike/ — missing app_set_config 90 mod cstrike, or you only ran the command once. Add it and run twice.
  • Anonymous still shows old login — cached session; delete ~/Steam/appcache and retry.
  • 0x402 after update job — interrupted download, not a licence problem; re-run to resume.

Verification

The install is complete only when the mod files exist, not when SteamCMD prints "Success". Check:

ls /home/steam/hlds/cstrike/liblist.gam
ls /home/steam/hlds/hlds_run /home/steam/hlds/hlds_linux

All three must be present. liblist.gam is what tells the engine which game library to load; if it is missing, the cstrike mod did not download and you must re-run the anonymous command with mod cstrike set. Once those files exist, proceed to installing ReHLDS.

Contribuitori: Daemon666 ✦
Distribuie: