Sunucu tanitimi
58 lines 5.6 KiB Markdown Source Rendered Raw Permalink History
---
title: "Fix: SteamCMD 'Failed to install app 90 (No subscription)'"
excerpt: "The 'No subscription' error on app 90 almost always means you logged into SteamCMD with a personal account instead of anonymous. Here is the correct install command and the other causes."
category: "errors"
tags: "steamcmd, appid-90"
image: ""
read_time: "7 min read"
---
<p>You try to download the CS 1.6 dedicated server and SteamCMD stops with:</p>
<pre>Error! App '90' state is 0x... after update job.
Failed to install app '90' (No subscription)</pre>
<p>"No subscription" means the Steam account you are logged in as does not own a licence for App&nbsp;90. The near-universal cause is logging in with your <em>personal</em> Steam account. App&nbsp;90 (Half-Life Dedicated Server) is an anonymous app &mdash; personal accounts generally do not have a subscription to it, so Steam refuses. The fix is to log in anonymously.</p>

<h2>1. Log in as anonymous, not your account</h2>
<p>Run SteamCMD with <code>+login anonymous</code>. This is the single most common fix:</p>
<pre>./steamcmd.sh +force_install_dir /home/steam/hlds \
  +login anonymous \
  +app_set_config 90 mod cstrike \
  +app_update 90 validate \
  +quit</pre>
<p>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: <code>+login anonymous</code> must come <em>before</em> <code>+app_update 90</code>, 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.</p>

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

<h2>3. Clear a poisoned session or manifest</h2>
<p>If anonymous login still errors, a stale cached login or a broken app manifest is the cause. Remove the cache and retry:</p>
<pre>rm -rf ~/Steam/appcache
rm -f /home/steam/hlds/steamapps/appmanifest_90.acf</pre>
<p>Then re-run the anonymous command from step 1. Deleting <code>appmanifest_90.acf</code> forces SteamCMD to re-evaluate the install from scratch rather than trusting a corrupt state file.</p>

<h2>4. Rule out a genuinely broken download server</h2>
<p>Occasionally the error is transient &mdash; a Steam content server in your region is failing. Two things help:</p>
<ul>
<li>Re-run the command; <code>app_update</code> resumes and often succeeds on the next attempt.</li>
<li>If it fails repeatedly at the same point, the download is interrupted, not unlicensed &mdash; a state like <code>0x402</code> means the transfer stopped, and re-running resumes cleanly.</li>
</ul>
<p>You can also point SteamCMD at a specific content-server region if your default one is unhealthy, but for App&nbsp;90 that is rarely necessary &mdash; the anonymous login fix resolves the overwhelming majority of "No subscription" reports.</p>

<h2>5. Not a Steam Guard problem</h2>
<p>Because the error mentions accounts, people sometimes chase Steam Guard, two-factor codes, or password resets. None of that applies here: App&nbsp;90 is an anonymous app and the <em>correct</em> 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 &mdash; stop, and use <code>+login anonymous</code>. There is no scenario where downloading the CS 1.6 dedicated server requires your personal credentials.</p>

<h2>6. Do not confuse it with the 32-bit runtime error</h2>
<p>"No subscription" is a <em>download</em> failure. If the download succeeds but the server will not <em>start</em>, that is a different problem &mdash; usually missing 32-bit libraries, not a subscription issue. See <a href="/tutorials/install-cs16-dedicated-server-linux-steamcmd">the full Linux install guide</a> for the multilib packages HLDS needs.</p>

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

<h2>Verification</h2>
<p>The install is complete only when the mod files exist, not when SteamCMD prints "Success". Check:</p>
<pre>ls /home/steam/hlds/cstrike/liblist.gam
ls /home/steam/hlds/hlds_run /home/steam/hlds/hlds_linux</pre>
<p>All three must be present. <code>liblist.gam</code> is what tells the engine which game library to load; if it is missing, the <code>cstrike</code> mod did not download and you must re-run the anonymous command with <code>mod cstrike</code> set. Once those files exist, proceed to <a href="/tutorials/install-rehlds-on-linux">installing ReHLDS</a>.</p>