DuffedUI replaces OpenAllBagsMatchingContext with an empty function, but the Blizzard UI expects a number returned from that function.
Here's the function called when you open the Soulbind UI:
Lua Code:
function SoulbindViewerMixin:OnShow() -- line 85
FrameUtil.RegisterFrameForEvents(self, SoulbindViewerEvents);
self:UpdateButtons();
PlaySound(SOUNDKIT.SOULBINDS_OPEN_UI);
self:UpdateBackgrounds();
if C_Soulbinds.CanModifySoulbind() then
ItemButtonUtil.OpenAndFilterBags(self); -- line 95
end
self:CheckTutorials();
end
Here's what that function calls to open bags:
Lua Code:
function ItemButtonUtil.OpenAndFilterBags(frame) -- line 62
ItemButtonUtil.TriggerEvent(ItemButtonUtil.Event.ItemContextChanged);
local openedCount = OpenAllBagsMatchingContext(frame); -- line 65
frame.closeBagsOnHide = openedCount > 0; -- line 66
end
When OpenAllBagsMatchingContext is called, it goes through the bags and counts which ones are opening:
Lua Code:
function OpenAllBagsMatchingContext(frame)
local count = 0;
for i = 0, NUM_BAG_FRAMES do
if ItemButtonUtil.GetItemContextMatchResultForContainer(i) == ItemButtonUtil.ItemContextMatchResult.Match then
if not IsBagOpen(i) then
OpenBag(i);
count = count + 1;
end
end
end
if frame and not FRAME_THAT_OPENED_BAGS then
FRAME_THAT_OPENED_BAGS = frame:GetName();
end
return count;
end
The source of the issue is the very last line of the code you linked:
OpenAllBagsMatchingContext = D['Noop']
Based on common code practices, D['Noop'] should be equal to
function()end.
This error can be fixed by changing that line to the following:
OpenAllBagsMatchingContext = function() return 0 end