Skip to content

FAQ: Item Transfer, what can and can't happen

Vendal Thornheart edited this page Nov 11, 2018 · 1 revision

Every once in a while, we get questions and concerns from the community about the possibility that item transfer could delete and/or duplicate items. I usually bring up the information below when it's asked, but it was recently pointed out to me that it'd be useful to have an FAQ page that I could point to with the details: so here it is!

TL;DR It is not possible for the item you transfer to disappear. It is also not possible for it to be duplicated. There are, however, side effects that can happen in specific situations.

In every situation we have examined, the item has ended up in a location where the user wasn't intending rather than it being deleted (for instance, it stayed in the vault instead of being transferred to the intended character: or they unintentionally transferred it to the wrong character).

The long story of item transfer

Deletion upon transfer is not possible because there is no mechanism in the code by which the Transfer capabilities of the game - neither transferring in-game, nor by the API - can delete the items being transferred. We've thoroughly investigated these issues in the past, and there is no path by which this can occur.

Transferring of the item itself involves the transactional movement of items between inventory buckets: an operation which, if it failed, is guaranteed to result in the item remaining in its original location. These operations also are guaranteed to run in serial with other requests from the API and from any game client in which you are performing actions, which prevents race conditions.

The closest thing to this happening is when the game UI itself allows the user to perform an action on an item before you have the opportunity to see what state has actually changed.

For instance, there was a long time where - if you were actively dismantling items in-game - the "countdown" on dismantling items wouldn't reset if a new item took up the spot you were hovering over: this meant that if you transferred out the item on which you were hovering and another item took its place in your inventory just as the countdown is ending, you would delete the item you were hovering over even if the item was now different from the one you were hovering over when you first pressed "dismantle". This experience has since been improved, though it should be noted that the act of the "countdown" on press is still happening entirely on the client: the deletion itself doesn't happen until that countdown ends and a message is sent to the game server (at which point that message is run in serial with any other server-side "write" commands for that account, be they from the game or from the Destiny API)

What do check if you think you lost an item

If this is appearing to occur, you will want to double-check your characters and your Vault: it is possible that an app attempting to transfer character -> vault -> character will leave an item in your vault rather than moving to the intended character, but the item cannot be removed. It can also appear to be missing when looking at a given app if it has cached the state of your account before the transfer and not updated that state, or if the app is not properly affinitized on our servers and is thus pulling an obsolete copy of your character's state from a different Bungie.net server than the one on which the transfer request was made: but in both of those cases, it should clear up if you force a refresh of your character data at worst ~60 seconds later. (if you see this happening frequently in an app, have them contact us: they may be discarding the data that we send in a response that attempts to affinitize a user to a single bungie.net server, which will result in these kind of cache-related usability issues unfortunately)

Side effects that can happen due to item transfer

While the item you're transferring is safe from deletion or duplication, there are effects that can happen when using the API - some of them (like reset-triggered item deletions) are intentional and are exactly what would happen if you logged into the game with the character/account in question, but some (like item lock state changes) are due to bugs that are currently being investigated. Take a look below for the current information on those subjects!

Loss of items deleted at daily/weekly reset, or on regular "timers" if the reset has passed

Something that can happen on item transfer - or any action, be it in-game or through the API - is that items that are supposed to be deleted due to a timer may potentially be deleted. For instance, if you transfer an item through the API and you hadn't yet logged into the game after a daily or weekly reset, items that are supposed to be deleted during that reset may suddenly be deleted. This is intended, and separate from the item transfer itself.

Item Lock/Tracking State changes on transfer

There is a bug we recently discovered where items may inherit a similar item's locked/unlocked state on transfer, but that is entirely separate from the deletion of items being transferred. The locked/unlocked state bug is due to the fact that this specific state (and only this state, for the time being) is stored on an item's "inventory slot" and a bug exists that's attempting to find the correct inventory slot from which locked/unlocked state should be copied.

If you are affected by the lock state issue, you can get more information here: https://github.com/Bungie-net/api/issues/764 The workaround is to make sure all items of the same name that are in the same inventory bucket have their lock state set to the same value (on or off) before you perform transfers... or to merely change the lock state back to the desired state after you finish the transfer. No ETA on when this will be fixed.

Triumph Toasts on Transfer

Also, there is the separate but related issue of Triumph toasts repeatedly coming up. This is an interesting issue having to do with those same resets that I mentioned above, but should not affect the state of your inventory. You can track that issue here - we're waiting on a game-side fix to resolve the issue, but I've been given no solid ETA as to when that will occur (I've been told potentially in the new year): https://github.com/Bungie-net/api/issues/644