Generals/Zero Hour: "Failed to fetch Steam App Name" – root cause found
Since September 24, the Steam versions of C&C Generals (AppID 2229870) and Zero Hour (AppID 2732960) no longer start for anyone, on Windows and Linux alike. The game shows "Failed to fetch Steam App Name!" and hangs. Many reports here: https://steamcommunity.com/app/2229870/discussions/0/594068102507033860/
Root cause (traced with network logging): Right after SteamAPI_Init, game.dat requests
https://store.steampowered.com/api/appdetails?appids=2229870
Steam answers HTTP 200 with the correct data ("steam_appid":2229870, "name":"Command & Conquer™ Generals"), but the JSON object is now keyed by "2408250" instead of "2229870". The game looks up its own AppID as the key, finds nothing and fails. Zero Hour is affected the same way: appids=2732960 comes back keyed as "2748390". Anyone can verify this by opening the URL above in a browser.
So reinstalling, verifying files or updating drivers won't help. Suggested fix for the game: don't depend on the undocumented store web API for the app name. Use the Steamworks client API (ISteamApps) instead, or fall back gracefully if the lookup fails.
@EA team: could you please forward this to the developers (EA Pacific)? Thanks!