arkayenro / arkinventory

A World of Warcraft Inventory mod for Retail, Burning Crusade, and Classic
108 stars 14 forks source link

[BUG] alpha-15 intermittent error and addon unusable #1920

Closed hollo6 closed 1 month ago

hollo6 commented 1 month ago

What version number you are using? 3.10.33-alpha-15

What game client are you playing? Retail, Wrath, Classic / Live, PTR, Beta Retail

What language is the game client set to? enGB

Describe the bug Sometimes after logging in, getting the following error and the addon is not working at all, prevents the bag from showing, getting the same error when trying to open it.

[05:26:38] ArkInventory: ERROR> ...rface/AddOns/ArkInventory/Core/ArkInventoryCodex.lua:111: attempt to index field 'data' (a nil value)

To Reproduce Not sure what triggers it, I'm getting it intermittently, not always and it's not character specific.

Screenshots N/A

Additional context New bug in alpha-15 I was referring to in https://github.com/arkayenro/arkinventory/issues/1917

hollo6 commented 1 month ago

Nevermind intermittently. It was like that for half a day and now I'm getting it almost every time on all characters. Incredibly annoying having to do an extra reload just to be able to use the bag. Even reload doesn't always help.

arkayenro commented 1 month ago

i cant reproduce it but there should only be one reason for that error to happen there so i've moved the code around to cater for it.

should be fixed, if it is, in the next alpha

arkayenro commented 1 month ago

found a character i could reproduce it on and it was more than what i fixed in 16, so 17 should fix it.

hollo6 commented 1 month ago

This seems OK now in 17 but there is a new bug, not sure if related but noticed it the first time after installing this version. I took 3 items out from guild bank, and the 2. and 3. ones remained displayed inside despite they were clearly not there, they were in my bags. Tried reopening the guild bank, switch tabs, closing and opening every bag related window multiple times, nothing helped but reload. Shall I open a new ticket for this?

hollo6 commented 1 month ago

Did some more testing and it seems now this happens in 99% of the cases, not sure why the very first item was not affected. Alpha-14 seems to work but it's strangely very slow to update the guild bank window.

arkayenro commented 1 month ago

ghost vault items usually only happen when moving from one tab to another

right clicking on items one after the other fast enough will also cause issues as the vault wont update that fast but it shouldnt be leaving items behind, it typically just wont move them.

if you wait for the click sounds to indicate the game has accepted the item move youre usually fine. going faster tends to cause problems.

the guild bank is always slow to update as wow doesnt hand the data back as quickly.

normally changing to another tab and going back is enough to reload the tab data. or just moving something from one slot to another.

if you mouse over the vault slots with the invalid item does it have a tooltip?

hollo6 commented 1 month ago

I just placed 1 item, with 1 right-click, from my bags to the gbank and both the gbank and the bag window stopped updating, neither of them would show the items at their target place when moving in either direction. Ghost items do have tooltips.

I am aware that gbank updates more slowly but it was never THIS slow.

arkayenro commented 1 month ago

i can move stuff back and forth from bag to vault without a problem, so long as i dont go too fast so there doesnt appear to be a code issue per se.

could you perhaps delete the vault location data and then try again?

hollo6 commented 1 month ago

How do I delete the vault data only without deleting anything else?

arkayenro commented 1 month ago

switch location > vault > delete data

hollo6 commented 1 month ago

On Switch Character, I have Erase Bags data and Erase All data but in Locations menu, it's only Enable/Disable ?

arkayenro commented 1 month ago

sorry, it was switch location. but hold off for a bit and try alpha 18. the codex code is being a pain to get right but i think its fixed now.

theres still an issue with vault data if you swap to a toon that has no access to a tab screwing it up when you swap back to one that does.

hollo6 commented 1 month ago

No dice, ghost items still shown in gbank, even when only clicking on one item. Also now gbank window tries to load the tab that was open last even when I just logged in (previously it started off blank and tried to load the first tab after some time). I'm still curious about deleting gbank data, thought we were talking about this menu: image

What am I missing?

arkayenro commented 1 month ago

open the guild bank window, click on switch location, mouseover the current guild bank, erase all data

arkayenro commented 1 month ago

i'll keep digging into the issue

hollo6 commented 1 month ago

Found it now, thanks! Let me know if I can do anything to help debug this.

hollo6 commented 1 month ago

My guild bank is totally out of whack now. I get an item out, it keeps showing in gbank. I put something in, it never shows, making me think they are lost somehow because they won't show up in inventory or search either. But they are actually there, I can take them out by clicking on the seemingly empty place. Happens on every character and has nothing to do with permissions, all of them have full access. This issue is not present in alpha-15. Also I still maintain that gbank window update is significantly slower than it was in alpha-5.

hollo6 commented 1 month ago

I just rolled back to alpha-5 and gbank window update is indeed much faster.

arkayenro commented 1 month ago

part of the issue appears to be that guild id was getting wiped on logout so when you login the next time you wont have one set when it builds and caches the player codex. reloads dont wipe it so it should work for a while and then break at each new character login.

hollo6 commented 1 month ago

After a brief testing, gbank looks good in alpha-19. I started getting a few different LUA errors:

1x ArkInventory/Core/ArkInventory.lua:12391: attempt to index local 'obj' (a nil value) [string "@ArkInventory/Core/ArkInventory.lua"]:12391: in function Frame_Changer_Slot_Highlight' [string "@ArkInventory/Core/ArkInventory.lua"]:12353: in functionFrame_Changer_Generic_OnLeave'

Locals: frame = ARKINV_Frame4ChangerWindowBag4 { 0 = OnEnter = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1468 SetItem = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:544 IconOverlay = Texture { } SetAlpha = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:631 UpdateCooldown = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1696 showMatchHighlight = true OnDragStart = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1580 OnReceiveDrag = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1584 icon = ARKINV_Frame4ChangerWindowBag4IconTexture { } size = 98 UpdateTooltip = defined @ArkInventory/Core/ArkInventory.lua:11741 SetReadable = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1688 CheckUpdateTooltip = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1712 UpdateNewItem = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1634 IsReadable = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1692 count = 98 UpdateItemContextMatching = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:450 SetItemButtonCount = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:614 SetItemInternal = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:549 UpdateCraftedProfessionsQualityShown = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:461 HighlightTexture = Texture { } ArkBorder = ARKINV_Frame4ChangerWindowBag4ArkBorder { } PostOnShow = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:414 UpdateItemContextOverlayTextures = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:499 SetItemSource = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:528 IconQuestTexture = ARKINV_Frame4ChangerWindowBag4IconQuestTexture { } SetBagID = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1588 IsExtended = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1726 UpdateItemContextOverlay = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:488 CheckForTutorials = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1756 PushedTexture = Texture { } emptyBackgroundAtlas = "bags-item-slot64" Count = ARKINV_Frame4ChangerWindowBag4Count { } SetItemButtonAnchorPoint = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:618 searchOverlay = ARKINV_Frame4ChangerWindowBag4SearchOverlay { } GetItemLocation = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:610 IconOverlay2 = Texture { } OnModifiedClick = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1533 locked = false OnItemContextChanged = defined @Blizzard_ItemButton/Mainline/ItemButtonTemplate.lua:410 GetItemContextMatchResult = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1433 UpdateExtended = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1730 itemContextMatchResult = 3 UpdateJunkItem = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1666 HasItem = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1684 OnClick = defined @Blizzard_UIPanels_Game/Mainline/ContainerFrame.lua:1446 JunkIcon = Te

1x ...aceArkInventory/Core/ArkInventoryStorage.lua:3687: attempt to index global 'codex' (a nil value) [string "@ArkInventory/Core/ArkInventoryStorage.lua"]:3687: in function ScanMailboxSentData' [string "@ArkInventory/Core/ArkInventoryStorage.lua"]:1281: in function?' [string "@TomTom/libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:109: in function <...Tom/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>

[string "@TomTom/libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...Tom/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:15> [string "@TomTom/libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function `Fire' [string "@TomTom/libs/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <...aceTomTom/libs/AceEvent-3.0/AceEvent-3.0.lua:119>

Locals: blizzard_id = 2002 loc_id = 5 bag_id = 2 player =

{ data =
{ } } bag =
{ loc_id = 5 count = 1 slot =
{ } status = -3 empty = 0 bag_id = 2 type = 15 } slot_id = 1 (temporary) = defined @ArkInventory/Core/ArkInventoryStorage.lua:5236 (temporary) = nil (temporary) = 1 (temporary) = 16 (temporary) = nil (temporary) = "|cff1eff00|Hitem:22926::::::::70:103::5::1:28:1015:::::|h[Recipe: Elixir of Empowerment]|h|r" (temporary) =
{ itemtypeid = 9 ilvl = 1 stacksize = 1 hs = "item:22926:0:0:0:0:0:0:0:0:0:0:0:0:1:28:1015:0:0:0:0:0" itemsubtypeid = 6 itemsubtype = "Alchemy" h = "|cff1eff00|Hitem:22926::::::::70:103::::1:28:1015:::::|h[Recipe: Elixir of Empowerment]|h|r" spell_name = "Learning" spell_id = 483 binding = 0 texture = 134942 q = 2 expansion = 1 stock = -1 class = "item" id = 22926 ready = true retry = 1 craft = false vendorprice = 25000 itemtype = "Recipe" name = "Recipe: Elixir of Empowerment" osd =
{ } equiploc = "" ilvl_base = 1 uselevel = 0 } (temporary) = 0 (temporary) = 1 (temporary) = true (temporary) = defined @TomTom/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:49 (temporary) = nil (temporary) = nil (temporary) = 5 (*temporary) =
{ StartupChecks = defined @ArkInventory/Core/ArkInventory.lua:14010 Action =
{ } Frame_Action_Popup_OnEnter = defined @ArkInventory/Core/ArkInventory.lua:11199 EVENT_ARKINV_BANK_TAB = defined @ArkInventory/Core/ArkInventoryStorage.lua:821 HookOpenAllBags = defined @ArkInventory/Core/ArkInventory.lua:12556 PT_BonusIDInSets = defined @ArkInventory/Core/ArkInventoryPT.lua:841 setScanStateRunning = defined @ArkInventory/Core/ArkInventoryStorage.lua:2168 TooltipCustomBattlepetAddDetail = defined @ArkInventory/Core/ArkInventoryTooltip.lua:672 Frame_Bar_Edit_OnReceiveDrag = defined @ArkInventory/Core/ArkInventory.lua:6943 ObjectInfoItemString = defined @ArkInventory/Core/ArkInventoryObject.lua:1013 EVENT_ARKINV_BACKPACK_TOKEN_UPDATE = defined @ArkInventory/Core/ArkInventoryStorage.lua:692 Frame_Action_Popup_Toggle = defined @ArkInventory/Core/ArkInventory.lua:11048 TooltipValidateDataFromSetQuestLogRewardSpell = defined @ArkInventory/Core/ArkInventoryTooltip.lua:1833 LocationMonitorChanged = defined @ArkInventory/Core/ArkInventory.lua:13792 GetItemTinted = defined @ArkInventory/Core/ArkInventoryStorage.lua:2347 ItemAgeGet = defined @ArkInventory/Core/ArkInventory.lua:13964 Frame_Changer_Slot_Update = defined @ArkInventory/Core/ArkInventory.lua:11976 LocationOverrideSet = defined @ArkInventory/Core/ArkInventory.lua:14418 ConfigInternalCategoryGet = defined @ArkInventory/Core/ArkInventoryConfig.lua:448 Frame_Bag_OnLoad = defined @ArkInventory/Core/ArkInventory.lua:7080 ConfigInternalCategorysetCopyFrom = defined @ArkInventory/Core/ArkInventoryConfig.lua:1104 EVENT_ARKINV_OBLITERUM_LEAVE = defined @ArkInventory/Core/ArkInventoryStorage.lua:1644 EVENT_ARKINV_LOCATION_DRAW_BUCKET = defined @ArkInventory/Core/ArkInventoryStorage.lua:478 db =
{ } MenuLDBTrackingReputationListOptions = defined @ArkInventory/Core/ArkInventoryMenu.lua:4115 isLocationSaved = defined @ArkInventory/Core/ArkInventory.lua:13813 MediaFrameFontSet = defined @ArkInventory/Core/ArkInventoryMedia.lua:170 SetEnabledState = d