api icon indicating copy to clipboard operation
api copied to clipboard

FR: DestinySocketActionNotAllowed - exceptions for artifact? end this behavior?

Open nev-r opened this issue 1 year ago • 2 comments

in the age of reconfigurable artifact, the inability to unplug disabled armor mods is very impacting, in terms of the convenience we can provide via the API

example:

  • user pays for cheap grenade mods in artifact
    • gains access to 1 cost grenade kickstart
    • loses plug listing for 3 cost grenade kickstart
  • user plugs 1 cost grenade kickstart into some gauntlets
  • user un-pays for this in artifact (artifact mods can be freely individually toggled)
  • this socket is now considered disabled
    • the API returns an error trying to plug into this socket
    • DIM cannot plug 3 cost grenade kickstart in as a replacement. it can't plug any mod.
    • the user must, awkwardly, be instructed to go into the game, and unplug/replace that mod
the API error in question:
{
  "ErrorCode": 1678,
  "ThrottleSeconds": 0,
  "ErrorStatus": "DestinySocketActionNotAllowed",
  "Message": "You cannot perform that change through Bungie.net at this time.",
  "MessageData": {
    "request.plug.socketIndex": "The requested socket is disabled.  What kind of funny business are you trying to pull, anyways?  Don't make me turn this car around!"
  }
}

this is unfortunate! we could be doing so much to help the user like swapping in the available version of the mod. instead, this piece is basically broken, for the purposes of doing any mod assignment

so: can we make a heuristic exception here?

  • there's already a separate API mechanic for preventing truly irreplaceable things from being replaced (insertPlugFreeProtectedPlugItemHashes/insertPlugFreeBlockedSocketTypeHashes)
  • obviously the game understands the socket is disabled like "plug is not having an effect", not disabled like "unavailable as a socket"
  • if teaching the API to distinguish these two states is not viable, could we suppress the above error condition for artifact-affected mods??
    • these mods have an extra insertionRule and enabledRule: "Must Be Selected in the Seasonal Artifact"

nev-r avatar Aug 15 '23 23:08 nev-r

per discussion in discord, also very open to simply ending the "can't plug disabled sockets" rule

not sure there are any examples of disabled sockets that should remain untouched. historical examples of disabled plugs are:

  • bungie disables a mod for instance because of an exploit
  • new season, new artifact, old mods "go away" and become disabled where they are left plugged
  • historically when mod costs have changed, and a combination was plugged in that now exceeds the item's energy capacity, one or more sockets would become "disabled"

all of these are still cases where we should be allowed to plug something "over" the old plug

nev-r avatar Aug 15 '23 23:08 nev-r

Another example of a "disabled" socket that would be good to still have available for plugging: Harmonic Resistance (provides pve damage resistance against damage type matching your subclass damage type) becomes disabled when a Strand subclass is equipped because there's no incoming pve strand damage

robojumper avatar Aug 24 '23 17:08 robojumper