JustArchiNET / ArchiSteamFarm

C# application with primary purpose of farming Steam cards from multiple accounts simultaneously.
Apache License 2.0
11.2k stars 1.05k forks source link

Trader plugin sometimes fails to accept/decline trade but doesnt log or retry if it failed #2898

Closed JABirchall closed 1 year ago

JABirchall commented 1 year ago

Checklist

ASF version

Latest stable release

ASF variant

win-x64

Bug description

When archi is accepting/declining a trade based on tradematcher rules it sometimes doesnt despit logging it has done so. It doesnt notice it didnt accept/decline the trade and doesnt notice the trade is still open to retry. This then leads to the trade being cancelled if sent by another ArchiSteamBot) if its sent by a user it can be manually accepted/declined.

Expected behavior

Expected to Accept or decline a trade. If unsuccesful retry. If trade is still open retry.

Actual behavior

If it fails to accept/decline a trade it ignores the trade and leaves it open for the user to handle.

Steps to reproduce

I dont know, its random.

Possible reason/solution

Unknown

Can you help us with this bug report?

Somehow, I can test and offer feedback, but can't code

Full log.txt recorded during reproducing the problem

[13:49:37] DEBUG idle > ShouldAcceptTrade() The trade offer 6055685183 is determined to be Rejected due to IsTradeNeutralOrBetter.
[13:49:37] INFO idle > ParseTrade() Rejecting trade: 6055685183
[15:27:30] DEBUG idle > ShouldAcceptTrade() The trade offer 6056008390 is determined to be Accepted due to IsTradeNeutralOrBetter.
[15:27:30] INFO idle > ParseTrade() Accepting trade: 6056008390
[15:28:18] INFO idle > OnPersonaState() Announcing 76561197963701815 (tag⁧⁧Knife) with inventory made out of 6354 items in total on the listing...
[15:28:20] INFO idle > OnPersonaState() Success!
[15:49:51] DEBUG idle > ShouldAcceptTrade() The trade offer 6056064949 is determined to be Accepted due to IsTradeNeutralOrBetter.
[15:49:51] INFO idle > ParseTrade() Accepting trade: 6056064949

Global ASF.json config file

{
  "IPCPassword": "******",
  "IPCPasswordFormat": 2,
  "LicenseID": "**********",
  "MinFarmingDelayAfterBlock": 20,
  "SteamOwnerID": 76561197963701815,
  "SteamTokenDumperPluginEnabled": true,
  "SteamTradeMatcherPluginEnabled": true
}

BotName.json config of all affected bot instances

{
  "AcceptGifts": true,
  "BotBehaviour": 10,
  "CustomGamePlayedWhileFarming": "With yo momma",
  "CustomGamePlayedWhileIdle": "With my dick",
  "Enabled": true,
  "FarmingOrders": [
    4
  ],
  "GamesPlayedWhileIdle": [
    730,
    236390,
    505460,
    1091500,
    1449850,
    1794680
  ],
  "LootableTypes": [
    1,
    3,
    5,
    6,
    7
  ],
  "MatchableTypes": [
    2,
    3,
    4,
    5,
    6,
    7
  ],
  "OnlineFlags": 3840,
  "SendTradePeriod": 1,
  "SteamLogin": "***********",
  "SteamPassword": "*********",
  "SteamUserPermissions": {
    "76561197963701815": 3
  },
  "TradingPreferences": 19
}

Additional info

No response

marco-sciuto commented 1 year ago

https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#tradecheckperiod

JustArchi commented 1 year ago

Thanks for report.

Unfortunately, there is nothing that can be done about requests failing and Steam being unstable. We've already added trade check period property linked above to fight with this, you can tweak that property to hopefully react to missed trades earlier than configured default, but other than that, your options are limited.

In particular, ASF can only try at given point of time to react to (accept) the trade offer. If that fails due to any reason, most commonly, Steam being unstable/having difficulties, your trade offer won't be accepted, ASF already tries total of 5 times at any given point of time to deal with this. If those 5 tries fail, the next attempt happens at next trades check event, which is normally triggered with the next trade offer, but trade check period can make it happen earlier, this one you can configure.

Since there is nothing I believe that can further improved in this regard, I'll close this issue. Thanks anyway!