My apologies, I misrembered the exact structure of the ActionSlotUI. That’s on me for not heading to the project itself for reminding (ironic, because I’ve had a copy of the project open working on a tutorial for the last week!).
The InventoryItem contains the Image that shows the Icon of the item
The disabled image below it (and the Text under it) represents the quantity when stacked.
The actual configuration that was at issue was having the InventoryItem and Cooldown Overlay at the same level under a transform.
I modified the ActionSlotUI to put the InventoryItem and CooldownOverlay at the same level (which you can see in the ActionSlot(1) through ActionSlot(4) configurations.
First, I dragged the potion to the 1st slot (ActionSlot), which behaved normally, as it was simply the receiver of the drag (no reparenting takes place on the destination).
Then, i dragged the potion from the 1st slot to the 2nd slot (ActionSlot (1)). Now if you look at that 1st slot (ActionSlot), you’ll see that the CooldownImage is 1st before the InventoryItem.
Placing the InventoryItem in a Container object was Sam’s solution to this issue, but as it turns out, there are often many paths to the same goal.
While trying to disprove our solution, (with the help of my poorly explaining the setup), you came across an alternate solution to the reparenting problem. Since the InventoryItem is what is being reparented, setting the Cooldown Overlay as a child object of the InventoryItem removes the bug.
In short, great job with this line of inqury!