You should maybe check, before charging, if the slot you want to charge is actually "slotted".
Lua Code:
if HasItemInSlot(BAG_WORN, slotId) then
And doing the recharge in the GetGems function does not make sense, but it's your code and addon.
I'd rename that to TryRecharge instead as it will recharg in the end, and not get the soulgem info ;-)
And as these kind of addons often heppn to get you disconnected due to death
https://www.esoui.com/forums/showthread.php?t=10464
I'd check if the player is dead more than once here before calling the charge API function!
Once before your GetGems func is called and once before ChargeItemWithSoulGem is executed then maybe, until this ZOs bug is fixed.