Jump to content
McKay Development

Recommended Posts

Posted (edited)

Hi,

I'm currently trying to write a simple application that downloads a file in a manifest.

I observed, that getManiFest sometimes fails and sometimes doesn't. Do you have any idea how I can further debug this?

All im getting is an "Error: fail". My code:

let client = new SteamUser();
client.logOn();

client.on('loggedOn', async (details) => {
  let productInfo = await client.getProductInfo([730], [], true);
  const latestManifestId = productInfo.apps['730'].appinfo.depots['731'].manifests.public;
  
  let result = await client.getManifest(730, 731, latestManifestId);
  console.log(result);

  client.logOff();
  //console.log("Logged out of steam");
});

When debugging, I see that the "latestManifestId" is indeed correct, I checked it with steamdb.

Edited by xeugenx
  • xeugenx changed the title to getManifest randomly failing
Posted

I tried logging in with an account that owns the game and also added what you said. Still the same error.

Is there no way to get a better error description than just failed?

Posted

Sry, forgot to paste that. Also I forgot to mention that I'm on the latest version (v4.24.3).

(node:6356) UnhandledPromiseRejectionWarning: Error: Fail
    at Object.exports.eresultError (B:\Coden\js\Simple file downloader\node_modules\steam-user\components\helpers.js:105:12)
    at SteamUser.<anonymous> (B:\Coden\js\Simple file downloader\node_modules\steam-user\components\cdn.js:161:28)
    at SteamUser._handleMessage (B:\Coden\js\Simple file downloader\node_modules\steam-user\components\03-messages.js:633:35)
    at SteamUser._handleNetMessage (B:\Coden\js\Simple file downloader\node_modules\steam-user\components\03-messages.js:556:8)
    at SteamUser._processMulti (B:\Coden\js\Simple file downloader\node_modules\steam-user\components\03-messages.js:687:9)

Seems to fail when trying to get a cdn auth token, but still no clue what I could be doing wrong.

Posted

As far as I know, not all content servers require auth tokens anymore and maybe the backend is no longer returning empty auth tokens for servers that don't require one. Or maybe they've fully moved all content servers away from requiring auth tokens. I'll have to do a little research to see which is the case. In the meantime, you could try editing cdn.js and replacing line 230:

// Replace this:
let {token} = await this.getCDNAuthToken(appID, depotID, vhost);

// With this
let token = '';
try {
    token = (await this.getCDNAuthToken(appID, depotID, vhost)).token;
} catch (ex) { }

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...