Queue/Create Minor Inscription Research causes Skillet-Classic\SkilletQueue.lua:186: table index is nil
hogfather-wow opened this issue ยท 15 comments
To fix this issue change
if not itemLink then
to
if not itemLink or strfind(itemLink, "%|h%[%]%|h%|r") then
in
https://github.com/b-morgan/Skillet-Classic/blob/master/SkilletData.lua#L1010
However GetTradeSkillItemLink() returns an ItemLink with missing information
This issue happens on a German Client. I don't know if this issue also happens on other clients.
The Blizzard method that causes the issue is GetTradeSkillItemLink(). If I run /script print(GetTradeSkillItemLink(2))
it outputs []
which is caused by an itemLink that has not all required information.
The unparsed item link looks like this: |cffffffff|Hitem:::::::::70:::::::::|h[]|h|r
@hogfather-wow, thanks for the full error but I think I'm going to need the debugging data as well. Please type the following chat commands:
/skillet debuglogging on
/skillet debuglevel 2
/skillet tabledump on
This will output debugging information to the character specific saved variables file Skillet-Classic.lua. Please reproduce the issue, close Skillet-Classic, and logoff (or /reload
). Attach the character specific file here. Type /skillet debuglogging off
if you wish but the output is limited so just the most recent data is kept.
If you wish to see the output, change the first command to /skillet debugshow on
and the output will go to both chat and the saved variables file. /skillet debugshow off
will stop the chat spam but logging is still enabled. /skillet debugstatus
will show the current state.
Thanks for your help. I'm not sure how long it would take me to level Inscription to 75.
I don't have a character with Inscription. What level of Scribe is needed to encounter this bug? I also don't have access to a German client so I'd like to know if the enUS locale also has this bug.
Can I get a traceback of the actual error, please.
It sounds like this may be a Blizzard bug. Not sure how one reports it to Blizzard or if they even care.
BTW, instead of deactivating Skillet-Classic you can just shift-click your action bar button to open the Blizzard UI instead.
I don't have a character with Inscription. What level of Scribe is needed to encounter this bug?
You need 75 Inscription to learn the research
I also don't have access to a German client so I'd like to know if the enUS locale also has this bug.
Occured on the english game version for me
It sounds like this may be a Blizzard bug. Not sure how one reports it to Blizzard or if they even care.
Kinda doubt its a Blizz bug, since I was able to do the Minor Inscription Research after I deactivated Skillet.
BTW, instead of deactivating Skillet-Classic you can just shift-click your action bar button to open the Blizzard UI instead
TIL thanks!
The Blizzard API returning a malformed item link is a "bug" in my book. The fact that they don't use that item link in their UI is probably why the "bug" will never get fixed.
@jck0p, Since you have a enUS client, can you please reproduce this issue with Skillet-Classic-1.48-alpha1 and provide me with the exact error output.
Thanks!
@jck0p Thanks for jumping in here.
@b-morgan here is the full error:
1x Skillet-Classic\SkilletQueue.lua:186: table index is nil
[string "@Skillet-Classic\SkilletQueue.lua"]:186: in function `QueueAppendCommand'
[string "@Skillet-Classic\SkilletQueue.lua"]:444: in function `QueueItems'
[string "*:OnClick"]:2: in function <[string "*:OnClick"]:1>
Locals:
self = <table> {
DeleteIgnoreEntry = <function> defined @Skillet-Classic\UI\IgnoreList.lua:159
VendorItemAvailable = <function> defined @Skillet-Classic\Inventory.lua:251
SkillButton_NewGroup = <function> defined @Skillet-Classic\UI\MainFrame.lua:2260
modules = <table> {
}
ClearQueue = <function> defined @Skillet-Classic\SkilletQueue.lua:226
RecipeGroupInitFlatten = <function> defined @Skillet-Classic\RecipeGroups.lua:436
MERCHANT_UPDATE = <function> defined @Skillet-Classic\UI\MerchantWindow.lua:209
SkilletShow = <function> defined @Skillet-Classic\Skillet.lua:1100
DisplayShoppingList = <function> defined @Skillet-Classic\UI\ShoppingList.lua:1059
ShowQueueView = <function> defined @Skillet-Classic\UI\MainFrame.lua:3278
SKILL_LINES_CHANGED = <function> defined @Skillet-Classic\Skillet.lua:914
ScheduleTimer = <function> defined @ArkInventory\Externals\Ace3\AceTimer\AceTimer-3.0.lua:94
FilterDropDown_OnShow = <function> defined @Skillet-Classic\UI\Filtering.lua:81
castSpellName = "Inschriftenkunde"
hideTrivialRecipes = false
RecipeGroupSort = <function> defined @Skillet-Classic\RecipeGroups.lua:410
EnableResize = <function> defined @Skillet-Classic\UI\Utils.lua:122
EnchantSpellToItem = <table> {
}
db = <table> {
}
InitializeSkillLevels = <function> defined @Skillet-Classic\SkillLevelData.lua:294
UpdateNotesWindow = <function> defined @Skillet-Classic\UI\RecipeNotes.lua:123
SetEnabledState = <function> defined @ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua:424
SkilletShowWindow = <function> defined @Skillet-Classic\Skillet.lua:1176
AdditionalButtonsList = <table> {
}
CHAT = <function> defined @Skillet-Classic\DebugAids.lua:64
IgnoreList_OnScroll = <function> defined @Skillet-Classic\UI\IgnoreList.lua:279
SortDropdown_OnLoad = <function> defined @Skillet-Classic\UI\Sorting.lua:547
pluginsOptions = <table> {
}
UnregisterAllEvents = <function> defined @ItemRack\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
RecipeGroupFlatten = <function> defined @Skillet-Classic\RecipeGroups.lua:457
RecipeGroupMoveEntry = <function> defined @Skillet-Classic\RecipeGroups.lua:291
EnablePauseButton = <function> defined @Skillet-Classic\UI\MainFrame.lua:198
ReagentButtonSkillSelect = <function> defined @Skillet-Classic\UI\MainFrame.lua:2570
ShowReagentDetails = <function> defined @Skillet-Classic\UI\MainFrame.lua:3169
GetTradeSkillTools = <function> defined @Skillet-Classic\TradeskillInfo.lua:231
bopCheck = <function> defined @Skillet-Classic\UI\MainFrame.lua:1653
RecipeGroupClearEntries = <function> defined @Skillet-Classic\RecipeGroups.lua:128
PrintSaved = <function> defined @Skillet-Classic\SkilletQueue.lua:241
TABLE = <function> defined @Skillet-Classic\DebugAids.lua:312
FixBugs = true
Unhook = <function> defined @ArkInventory\Externals\Ace3\AceHook\AceHook-3.0.lua:418
InventoryFilterButton_OnShow = <function> defined @Skillet-Classic\UI\MainFrame.lua:2816
SetTradeSkillToolTip = <function> defined @Skillet-Classic\UI\MainFrame.lua:1557
SetTradeSkill = <function> defined @Skillet-Classic\Skillet.lua:1453
BBGPlugin = <table> {
}
tradeUpdate = 2
L = <table> {
}
button_count = 48
RemoveFromQueue = <function> defined @Skillet-Classic\SkilletQueue.lua:203
UNIT_SPELLCAST_INTERRUPTED = <function> defined @Skillet-Classic\SkilletQueue.lua:534
StealEnchantButton = <function> defined @Skillet-Classic\UI\MainFrame.lua:147
TradeSkil
Here is the log
Skillet-Classic.zip
After adding my fix there is no error.
Skillet-Classic-without-error.zip
I'm still a little confused but I've got an alternate patch I'd like you to try. Instead of adding your or strfind(itemLink, "%|h%[%]%|h%|r")
to the if statement, please add the following code before that if statement. I believe the only thing wrong with the itemLink is that there isn't a number after the item:
so that's what I'll look for and generate some debug output when we get one.
Please run the experiment again so I can see the if the debug output is what I want.
itemLink = GetTradeSkillItemLink(i)
if itemLink and strfind(itemLink,"item::") then
--
-- itemLink is malformed, ignore it
--
DA.DEBUG(0,"ScanTrade: malformed itemLink, tradeID= "..tostring(tradeID)..", i= "..tostring(i)..", name= "..tostring(skillName)..", link= "..DA.PLINK(itemLink))
itemLink = nil
end
--
-- Enchants don't have an itemLink
-- Use the recipeID instead (for GetItemInfo)
--
if not itemLink then
@b-morgan Your Patch works perfectly. Thank you!
Can you capture the debug output once again and upload it, please? I want to make sure it contains the right stuff in case I run into a similar issue in the future.
Here is the logging with your patch
Skillet-Classic.zip
Not sure if thats relevant, but just tested it with TSM crafting and that worked (was able to the research)
Skillet-Classic-1.48-alpha2 contains the fix for this issue.