Can't use tailor table to fulfill crafting order, lua error

Someone has listed a request for a tailoring crafting order for Warm Sunrise Bracers but it can’t be fulfilled due to LUA errors in your own interface.

To replicate: Prerequisite: There exists a Warm Sunrise Bracers crafting order available to craft via a public crafting order. Search without specifying any name. Click on the listing for Warm Sunrise Bracers. Result: blank menu and lua error stack as follows:

Message: ...Professions/Blizzard_ProfessionsCrafterOrderView.lua:564: attempt to index local 'allocations' (a nil value)
Time: Mon Sep 16 23:08:18 2024
Count: 1
Stack: ...Professions/Blizzard_ProfessionsCrafterOrderView.lua:564: attempt to index local 'allocations' (a nil value)
[string "@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCrafterOrderView.lua"]:564: in function `SchematicPostInit'
[string "@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCrafterOrderView.lua"]:311: in function `postInit'
[string "@Interface/AddOns/Blizzard_ProfessionsTemplates/Blizzard_ProfessionsRecipeSchematicForm.lua"]:1431: in function `Init'
[string "@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCrafterOrderView.lua"]:893: in function `SetOrder'
[string "@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCrafterOrderPage.lua"]:758: in function `ViewOrder'
[string "@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCrafterOrderPage.lua"]:64: in function <...Professions/Blizzard_ProfessionsCrafterOrderPage.lua:59>

Locals: self = Frame {
 order = <table> {
 }
 CreateButton = Button {
 }
 RankBar = Frame {
 }
 CraftingOutputLog = Frame {
 }
 StartRecraftButton = Button {
 }
 asyncContainers = <table> {
 }
 hasOptionalReagentSlots = true
 reagentSlotProvidedByCustomer = <table> {
 }
 OverlayCastBarAnchor = Frame {
 }
 DeclineOrderDialog = Frame {
 }
 StopRecraftButton = Button {
 }
 OrderDetails = Frame {
 }
 CompleteOrderButton = Button {
 }
 ConcentrationDisplay = Frame {
 }
 OrderInfo = Frame {
 }
}
transaction = <table> {
 useCharacterInventoryOnly = true
 isRecraft = false
 applyConcentration = false
 recipeSchematic = <table> {
 }
 recipeID = 446934
 reagentSlotSchematicTbls = <table> {
 }
 allocationTbls = <table> {
 }
 reagentTbls = <table> {
 }
 manuallyAllocated = false
}
recipeInfo = <table> {
 sourceType = 0
 disabled = false
 maxQuality = 5
 relativeDifficulty = 0
 supportsCraftingStats = true
 firstCraft = true
 learned = false
 skillLineAbilityID = 50706
 icon = 5660120
 isSalvageRecipe = false
 itemLevel = 885
 craftable = true
 name = "Warm Sunrise Bracers"
 isEnchantingRecipe = false
 recipeID = 446934
 canCreateMultiple = true
 categoryID = 2099
 isGatheringRecipe = false
 isRecraft = false
 qualityIDs = <table> {
 }
 isDummyRecipe = false
 supportsQualities = true
 qualityIlvlBonuses = <table> {
 }
 hasSingleItemOutput = true
 alwaysUsesLowestQuality = false
 hyperlink = "[Warm Sunrise Bracers]"
 maxTrivialLevel = 100
 canSkillUp = true
 favorite = false
 numSkillUps = 3
}
reagentSlotToItemID = <table> {
 1 = 228930
 2 = 222803
 3 = 219951
 5 = 211296
 8 = 222794
}
(for state) = <table> {
 1 = <table> {
 }
 2 = <table> {
 }
 3 = <table> {
 }
 4 = <table> {
 }
 5 = <table> {
 }
 6 = <table> {
 }
}
(for control) = 6
_ = 6
reagentInfo = <table> {
 slotIndex = 10
 reagent = <table> {
 }
 source = 0
 isBasicReagent = false
}
allocations = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = 20
(*temporary) = nil
(*temporary) = <table> {
 allocs = <table> {
 }
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = <table> {
 allocs = <table> {
 }
}
(*temporary) = <table> {
 isUndefinedEventAllowed = true
 frameEventFrame = Frame {
 }
 callbackTables = <table> {
 }
}
(*temporary) = "Professions.AllocationUpdated"
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index local 'allocations' (a nil value)"
9 Likes

Same. Not sure what the deal is here

4 Likes

I think you might have to have the Dawnweaving tree started in the Specializations? I’m down the duskweaving tree. Could be the issue. Totally Guessing though

4 Likes

I was also down the Duskweaving tree. That could be it.

3 Likes

I’m in the dawnweave tree on my tailor. With addons disabled, this does this to me, via personal order too.

4 Likes

I sure hope this wasn’t BiS for any spec.

3 Likes

I am having the same issue on my tailor. There is a public work order available and I know the recipe for the bracers, but receive a lua error when I click on the public work order to view it.

4 Likes

Can’t fill orders for this item, how sad is it that the blizzard default ui prevents this still.

4 Likes

I am getting the same error for Cool Sunset Bracers. I have the pattern, but can’t access the screen to create.

6 Likes

same problem, comes up with a blank grey screen when you select if from the public or personal work order screen, it has been 3-4 weeks now…

4 Likes

Came here to say, I’ve also been having this issue with the Warm Sunrise Bracers for public crafting orders. Have been having it for a weeks now (Missing out on thousands of gold). I have the recipe, but when I click on the crafting order, only a blank screen shows up. I sent in a bug report in game once I received the recipe and was still experiencing this issue. That was a couple of weeks ago. Still having this issue.

2 Likes

I get the trouble with “Cool Sunset Bracers”, the bug shows"@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCrafterOrderView.lua", but there is NOT the folder named “@Interface/AddOns/Blizzard_Professions” in my game folder.

3 Likes

Well yeah, if it were people would be like well I didn’t install this addon, delete. Oh nooooo my game is broken. It’s probably part of one of the numerous data packs.

You can view the raw code here

2 Likes

I’m not super savvy with lua so this assessment may or may not be wrong.

So heres the code block in question that’s throwing an error.

    if not self.order.isFulfillable then
        for _, reagentInfo in ipairs(self.order.reagents) do
            local allocations = transaction:GetAllocations(reagentInfo.slotIndex);

			-- isBasicReagent check here to handle multiple allocations within the same slot (qualities)
            if not self.reagentSlotProvidedByCustomer[reagentInfo.slotIndex] or not reagentInfo.isBasicReagent then
                allocations:Clear();
                self.reagentSlotProvidedByCustomer[reagentInfo.slotIndex] = true;
            end
            -- These allocations get cleared before sending the craft, but we allocate them for craft readiness validation
            allocations:Allocate(reagentInfo.reagent, reagentInfo.reagent.quantity);
            reagentSlotToItemID[reagentInfo.slotIndex] = reagentInfo.reagent.itemID;
        end
    end

The error in question: attempt to index local 'allocations' (a nil value) on line 564 is when it is calling allocations:Clear();. Indexing allocations comes earlier via the line

 local allocations = transaction:GetAllocations(reagentInfo.slotIndex);

If we look at the data given at time of error, we can see we are at slotIndex 10.

reagentInfo = <table> {
 slotIndex = 10
 reagent = <table> {
 }
 source = 0
 isBasicReagent = false
}

But if we look at the table reagentSlotToItemID where it is assigning item IDs to reagent slots, there is no slot 10.

reagentSlotToItemID = <table> {
 1 = 228930
 2 = 222803
 3 = 219951
 5 = 211296
 8 = 222794
}

So when allocations is getting indexed, its calling on reagentinfo for slot 10 which is nil, resulting in allocations being nil. When I testing this out, I used all level 1 materials.

if not self.reagentSlotProvidedByCustomer[reagentInfo.slotIndex] or not reagentInfo.isBasicReagent then

So since its or, one of those 2 conditions has to be met to continue on to the line of code that fails. The first should always fail in public orders as every reagent must be provided by the customer, but we can see in the error that reagentInfo.isBasicReagent is true (fails) and the table reagentSlotProvidedByCustomer is completely empty and so the reagentInfo.slotIndex value in the table would return nil, returning false, but it’s got that not keyword, so really it’s true, satisfying the if conditional.

So something is causing the craft to move onto an index that doesn’t exist. Since the comment mentions quality, and the error didn’t happen when I submitted a public order with all rank 1 materials, it’s likely this error will only happen when some material is posted at either quality level 2 or 3 (maybe mixed quality levels?), but its weird that its only happening on the 2 bracer crafts and not any of the others these materials are used in.

4 Likes

Was about to log this as a new bug but found this thread. Having the same LUA error on my tailor for the ‘Cool Sunset Bracers’ recipe. Have the required talents in Duskweaving (which is where I learned the pattern anyway…). Have tried with quality set and without and still gets the same error. Have tried with all addons disabled as well.

Can confirm per above I am trying to do this with quality level 3 mats. Will try posting those to my tailor.

4 Likes

getting this error on my mage who is my tailor as well.

it’s a crafting order for Cool Sunset Bracers, which I have the recipe for.

In the “From Dawn until Dusk” tree, I’m 30 top, 20-28 2nd tier and 10 in last tier for each one…

1 Like

Has there been a resolution on this issue yet?

1 Like

I’m also seeing the same blank UI and similar lua error from the original post for a public order for Cool Sunset Bracers. I can’t see what quality of mats are used because I can’t see the order.

1 Like

Still getting the same error unfortunately. Yet to see this addressed or even recognized.

1 Like