Lua Code:
function ZO_SharedInventoryManager:HandleSlotCreationOrUpdate(bagCache, bagId, slotIndex, isNewItem)
local existingSlotData = bagCache[slotIndex]
local slotData, result = self:CreateOrUpdateSlotData(existingSlotData, bagId, slotIndex, isNewItem)
bagCache[slotIndex] = slotData
if result == SHARED_INVENTORY_SLOT_RESULT_REMOVED then
self:FireCallbacks("SlotRemoved", bagId, slotIndex, existingSlotData)
...
This callback is not fired, if a item is consumed by researching its trait, why? The item is removed...