Questie

Questie

116M Downloads

failed quests and reaccepting the same quest without abandoning it - further issues

Cabro opened this issue ยท 31 comments

commented

1 - Blizzard allows you to just accept a quest again if you have it already in your quest log as failed.
With Questie's code, extraobjectives are simply not redrawn when you accept a quest in that situation.

Issue observed on escort quests (but most likely failed timed quests will reveal same bug also). Example https://www.wowhead.com/wotlk/quest=945/therylunes-escape

2 - the quest that you reaccepted is not tracked anymore. It's completely missing from tracker.

3 - the quest still shows as available to be taken on the map and NPC/tooltips even after you reaccepted it.

It is my impression that all these bugs are caused because Questie does not detect that you accepted the quest and all the issues would be solved if the addon will detect quest accept in that situation.

commented

Turn on DEBUG_DEVELOP and tell me if you see this debug fire:

[QuestieQuest:UpdateQuest] Quest failed

Actually, I'd love to see an output when it fails so I can see what fires and in what order. I have a theory as to what is going on here.

commented

Taking quest first time:

[23:38:13] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[23:38:13] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[23:38:14] Quest accepted: Therylune's Escape
[23:38:14] Questie: [DEVELOP] QuestieTracker:AQW_Insert
[23:38:14] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Questie)
[23:38:14] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[23:38:14] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[23:38:14] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[23:38:14] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[23:38:14] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[23:38:14] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[23:38:14] Questie: [DEVELOP] QuestieTracker:Update
[23:38:14] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[23:38:14] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[23:38:14] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[23:38:14] Questie: [INFO] TrackerLinePool: HideUnusedLines
[23:38:14] Questie: [INFO] [QuestieQuest] Accepted Quest: 945
[23:38:14] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[23:38:14] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[23:38:14] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[23:38:14] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[23:38:14] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[23:38:14] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[23:38:14] Questie: [DEVELOP] [QuestieQuest:PopulateObjectiveNotes] Populating objectives for: 945
[23:38:14] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[23:38:14] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[23:38:14] Questie: [INFO] [QuestieQuest.CalculateAndDrawAvailableQuestsIterative] PlayerLevel = 21
[23:38:14] Questie: [DEVELOP] QuestieTracker:Update
[23:38:14] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[23:38:14] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[23:38:14] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[23:38:14] Questie: [INFO] TrackerLinePool: HideUnusedLines
[23:38:14] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[23:39:33] Therylune's Escape failed.
[23:39:33] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[23:39:33] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[23:39:33] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[23:39:33] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[23:39:33] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[23:39:33] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[23:39:33] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[23:39:33] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[23:39:33] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[23:39:33] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[23:39:33] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[23:39:34] Questie: [DEVELOP] QuestieTracker:Update
[23:39:34] Questie: [DEVELOP] QuestieTracker:UpdateFormatting

Quest is now available on Map with yellow exclamation mark, triggerend is removed, shows "quest failed" with red text in tracker.

Taking quest while failed in quest log:

[23:45:28] Therylune hides among the bushes.
[23:45:57] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[23:46:04] [S] [Cheeqey]: acceping quest while failed in log
[23:46:04] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[23:46:04] Quest accepted: Therylune's Escape
[23:46:04] Questie: [DEVELOP] QuestieTracker:UntrackQuestId
[23:46:04] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Blizzard)
[23:46:04] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[23:46:04] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[23:46:04] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[23:46:04] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[23:46:04] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[23:46:04] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[23:46:05] Questie: [DEVELOP] QuestieTracker:Update
[23:46:05] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[23:46:32] Therylune's Escape failed.
[23:46:32] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[23:46:32] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[23:46:32] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[23:46:32] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[23:46:32] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[23:46:32] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[23:46:32] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[23:46:32] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[23:46:32] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[23:46:32] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[23:46:32] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[23:46:33] Questie: [DEVELOP] QuestieTracker:Update
[23:46:33] Questie: [DEVELOP] QuestieTracker:UpdateFormatting

commented

So, in both instances Questie is handling everything correctly AFTER receiving the Therylune's Escape failed. event.

But there is a huge chunk that is missing from the log that should be there after accepting the Quest a second time (from a failed state). Unfortunately, the strings I need are in the SPAM channel. :( I need to know how far down in the function calls it goes before bailing out. Can you run this test case again with the SPAM channel on? ducks

commented

In the below image you can see why it's not Tracked after accepting the Quest again after it failed... might be how Blizzard is handling failed Quests. Won't know for sure until I look at the SPAM channel output.

You can see the "missing chunk" I referred to in the previous post.

image

commented

First accept:

[12:09:01] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[12:09:04] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[12:09:04] Quest accepted: Therylune's Escape
[12:09:04] Questie: [DEVELOP] QuestieTracker:AQW_Insert
[12:09:04] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Questie)
[12:09:04] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[12:09:04] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[12:09:04] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[12:09:04] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[12:09:04] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[12:09:04] Questie: [SPAM] Skipping UnitQuestLogChanged
[12:09:04] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[12:09:04] Questie: [DEVELOP] QuestieTracker:Update
[12:09:04] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:09:04] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:09:04] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:09:04] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:09:04] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[12:09:04] Questie: [INFO] [QuestieQuest] Accepted Quest: 945
[12:09:04] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[12:09:04] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[12:09:04] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[12:09:04] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[12:09:04] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[12:09:04] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[12:09:04] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[12:09:04] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[12:09:04] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[12:09:04] Questie: [DEVELOP] [QuestieQuest:PopulateObjectiveNotes] Populating objectives for: 945
[12:09:04] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[12:09:04] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[12:09:04] Questie: [INFO] [QuestieQuest.CalculateAndDrawAvailableQuestsIterative] PlayerLevel = 21
[12:09:04] Questie: [DEVELOP] QuestieTracker:Update
[12:09:04] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:09:04] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:09:04] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:09:04] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:09:04] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[12:10:07] Therylune's Escape failed.
[12:10:07] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[12:10:07] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[12:10:07] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[12:10:07] Questie: [SPAM] Running full questlog check
[12:10:07] Questie: [SPAM] Quest: 945 will be updated
[12:10:07] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[12:10:07] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[12:10:07] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[12:10:07] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[12:10:07] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[12:10:07] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[12:10:07] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[12:10:07] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[12:10:07] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[12:10:08] Questie: [DEVELOP] QuestieTracker:Update
[12:10:08] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:10:08] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:10:08] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:10:08] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:10:08] Questie: [INFO] TrackerLinePool: HideUnusedButtons

Accept while failed:

[12:18:24] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[12:18:26] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[12:18:26] Quest accepted: Therylune's Escape
[12:18:26] Questie: [DEVELOP] QuestieTracker:UntrackQuestId
[12:18:26] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Blizzard)
[12:18:26] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[12:18:26] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[12:18:26] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[12:18:26] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[12:18:26] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[12:18:26] Questie: [SPAM] Skipping UnitQuestLogChanged
[12:18:26] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[12:18:26] Questie: [DEVELOP] QuestieTracker:Update
[12:18:26] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:18:26] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:18:26] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:18:26] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:18:26] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[12:18:26] Questie: [INFO] [QuestieQuest] Accepted Quest: 945 Warning: Quest was once accepted. IsComplete = 0
[12:18:26] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[12:19:35] Therylune's Escape failed.
[12:19:35] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[12:19:35] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[12:19:35] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[12:19:35] Questie: [SPAM] Running full questlog check
[12:19:35] Questie: [SPAM] Quest: 945 will be updated
[12:19:35] Questie: [SPAM] [QuestieNameplate:UpdateNameplate]
[12:19:35] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[12:19:35] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[12:19:35] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[12:19:35] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[12:19:35] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[12:19:35] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[12:19:35] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[12:19:35] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[12:19:35] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[12:19:35] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[12:19:35] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[12:19:35] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[12:19:35] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[12:19:36] Questie: [DEVELOP] QuestieTracker:Update
[12:19:36] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[12:19:36] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[12:19:36] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[12:19:36] Questie: [INFO] TrackerLinePool: HideUnusedLines
[12:19:36] Questie: [INFO] TrackerLinePool: HideUnusedButtons

commented

Maybe this [INFO] [QuestieQuest] Accepted Quest: 945 Warning: Quest was once accepted. IsComplete = 0 is what causes to not redraw tooltips/extraobjectives/whatnot?

LE: point 2 in original post might be related to being in combat when reaccept/fail 2nd time, i was out of combat both times when i tested and didn't notice that happening.

commented

Ahhhh... I'm surprised this bug hasn't come up before. I'd like to make a small change to see what effect it'll have. I think my code comment says it all. Can you make the code change on your local files and retest? Don't worry about the code comment. I can check that in once we confirm this'll fix it. It will take care of point #2. And AQW_Insert calls QuestieQuest:PopulateObjectiveNotes(quest) and should trigger all the correct flags solving point #3.

I'd still like to see a debug output because I suspect I might have to insert some additional calls to get the COMMS working for this state. Perhaps even the tooltips? Not sure yet. I don't want to drop a sledgehammer out of the gate. Let's fix one layer at a time. ;)

image

commented

whats with the language in the last print call there? "quest already existed?" that sounds wrong..

commented

Ball! <gogo ooh! Shiny!>

commented

Sigh... Squirrel! :D I didn't write that string. You're right though, the grammar is wrong. It should be " Warning: Quest already exists, not adding"

I'll fix that...

commented

First time accepting:

[19:15:27] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[19:15:29] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[19:15:29] Quest accepted: Therylune's Escape
[19:15:29] Questie: [DEVELOP] QuestieTracker:AQW_Insert
[19:15:29] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Questie)
[19:15:29] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[19:15:29] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[19:15:29] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[19:15:29] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[19:15:29] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[19:15:29] Questie: [SPAM] Skipping UnitQuestLogChanged
[19:15:29] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[19:15:29] Questie: [DEVELOP] QuestieTracker:Update
[19:15:29] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:15:29] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:15:29] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:15:29] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:15:29] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[19:15:29] Questie: [INFO] [QuestieQuest] Accepted Quest: 945
[19:15:29] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[19:15:29] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[19:15:29] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[19:15:29] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[19:15:29] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:15:29] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:15:29] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[19:15:29] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[19:15:29] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[19:15:29] Questie: [DEVELOP] [QuestieQuest:PopulateObjectiveNotes] Populating objectives for: 945
[19:15:29] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[19:15:29] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[19:15:29] Questie: [INFO] [QuestieQuest.CalculateAndDrawAvailableQuestsIterative] PlayerLevel = 22
[19:15:29] Questie: [DEVELOP] QuestieTracker:Update
[19:15:29] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:15:29] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:15:29] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:15:29] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:15:29] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[19:15:29] Questie: [SPAM] [QuestieDB.IsDoable] preQuestSingle requirement not fulfilled for questId: 6
... -- a ton of these. Only present the first time accepting. These are missing when accepting while failed
[19:15:35] Questie: [SPAM] [QuestieDB.IsDoable] preQuestSingle requirement not fulfilled for questId: 11891
[19:16:48] Therylune's Escape failed.
[19:16:48] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[19:16:48] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[19:16:48] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[19:16:48] Questie: [SPAM] Running full questlog check
[19:16:48] Questie: [SPAM] Quest: 945 will be updated
[19:16:48] Questie: [SPAM] [QuestieNameplate:UpdateNameplate]
[19:16:48] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[19:16:48] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[19:16:48] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:16:48] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:16:48] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[19:16:48] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[19:16:48] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[19:16:48] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[19:16:48] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[19:16:48] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[19:16:48] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[19:16:48] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[19:16:48] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[19:16:49] Questie: [DEVELOP] QuestieTracker:Update
[19:16:49] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:16:49] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:16:49] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:16:49] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:16:49] Questie: [INFO] TrackerLinePool: HideUnusedButtons

Accepting while failed:

[19:23:31] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[19:23:32] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[19:23:32] Quest accepted: Therylune's Escape
[19:23:32] Questie: [DEVELOP] QuestieTracker:UntrackQuestId
[19:23:32] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Blizzard)
[19:23:32] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[19:23:32] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[19:23:32] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[19:23:32] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[19:23:32] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[19:23:32] Questie: [SPAM] Skipping UnitQuestLogChanged
[19:23:32] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[19:23:32] Questie: [DEVELOP] QuestieTracker:Update
[19:23:32] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:23:32] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:23:32] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:23:32] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:23:32] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[19:23:32] Questie: [INFO] [QuestieQuest] Accepted Quest: 945 Warning: Quest was once accepted. IsComplete = 0
[19:23:32] Questie: [DEVELOP] QuestieTracker:AQW_Insert
[19:23:32] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Questie)
[19:23:32] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[19:23:33] Questie: [SPAM] [QuestieTooltips:GetTooltip] m_3584
[19:23:45] Questie: [SPAM] [QuestieNameplate:DrawTargetFrame]
[19:24:07] Questie: [SPAM] [QuestieNameplate:NameplateCreated]
[19:24:15] Questie: [SPAM] [QuestieNameplate:DrawTargetFrame]
[19:24:42] Therylune's Escape failed.
[19:24:42] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[19:24:42] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[19:24:42] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[19:24:42] Questie: [SPAM] Running full questlog check
[19:24:42] Questie: [SPAM] Quest: 945 will be updated
[19:24:42] Questie: [SPAM] [QuestieNameplate:UpdateNameplate]
[19:24:42] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[19:24:42] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[19:24:42] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:24:42] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[19:24:42] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[19:24:42] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[19:24:42] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[19:24:42] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[19:24:42] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[19:24:42] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[19:24:42] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[19:24:42] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[19:24:42] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[19:24:43] Questie: [DEVELOP] QuestieTracker:Update
[19:24:43] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[19:24:43] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[19:24:43] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[19:24:43] Questie: [INFO] TrackerLinePool: HideUnusedLines
[19:24:43] Questie: [INFO] TrackerLinePool: HideUnusedButtons

commented

OK, sledgehammer it is! :(

Try this... I had to rewrite the whole AcceptQuest() function.

---@param questId number
function QuestieQuest:AcceptQuest(questId)
    local quest = QuestieDB:GetQuest(questId)
    local complete = quest:IsComplete()

    if not QuestiePlayer.currentQuestlog[questId] then
        Questie:Debug(Questie.DEBUG_INFO, "[QuestieQuest] Accepted Quest:", questId)

        QuestiePlayer.currentQuestlog[questId] = quest

        TaskQueue:Queue(
        --Get all the Frames for the quest and unload them, the available quest icon for example.
            function() QuestieMap:UnloadQuestFrames(questId) end,
            function() QuestieTooltips:RemoveQuest(questId) end,
            function()
                -- Re-accepted quest can be collapsed. Expand it. Especially dailies.
                if Questie.db.char.collapsedQuests then
                    Questie.db.char.collapsedQuests[questId] = nil
                end
                -- Re-accepted quest can be untracked. Clear it. Especially timed quests.
                if Questie.db.char.AutoUntrackedQuests[questId] then
                    Questie.db.char.AutoUntrackedQuests[questId] = nil
                end
            end,
            function() QuestieQuest:PopulateQuestLogInfo(quest) end,
            function()
                -- This needs to happen after QuestieQuest:PopulateQuestLogInfo because that is the place where quest.Objectives is generated
                Questie:SendMessage("QC_ID_BROADCAST_QUEST_UPDATE", questId)
            end,
            function() QuestieQuest:PopulateObjectiveNotes(quest) end,
            function()
                QuestieCombatQueue:Queue(function()
                    QuestieTracker:Update()
                end)
            end,
            QuestieQuest.CalculateAndDrawAvailableQuestsIterative
        )
    elseif complete == 1 or complete == 0 then
        Questie:Debug(Questie.DEBUG_INFO, "[QuestieQuest] Accepted Quest:", questId, " Warning: Quest was once accepted. IsComplete = ", complete)

        -- AutoQuestWatch_Insert is a "Toggle" that we hook into to Track and Untrack Quests. QuestieTracker:AQW_Insert() is hooked into this Blizzard
        -- API and must also be a "Toggle" function. So, the first time it's called, it adds the Quest and the second time it's called, it untracks the
        -- Quest. This is why re-accepted quests can be untracked from the Tracker. To get things back to the correct state we call AQW_Insert directly.
        if (Questie.db.global.autoTrackQuests and not Questie.db.char.AutoUntrackedQuests[questId]) or Questie.db.char.TrackedQuests[questId] == true then
            QuestieTracker:AQW_Insert(questId)
        end

        TaskQueue:Queue(
        --Get all the Frames for the quest and unload them, the available quest icon for example.
            function() QuestieMap:UnloadQuestFrames(questId) end,
            function() QuestieTooltips:RemoveQuest(questId) end,
            function()
                -- Re-accepted quest can be collapsed. Expand it. Especially dailies.
                if Questie.db.char.collapsedQuests then
                    Questie.db.char.collapsedQuests[questId] = nil
                end
                -- Re-accepted quest can be untracked. Clear it. Especially timed quests.
                if Questie.db.char.AutoUntrackedQuests[questId] then
                    Questie.db.char.AutoUntrackedQuests[questId] = nil
                end
            end,
            function() QuestieQuest:PopulateQuestLogInfo(quest) end,
            function()
                -- This needs to happen after QuestieQuest:PopulateQuestLogInfo because that is the place where quest.Objectives is generated
                Questie:SendMessage("QC_ID_BROADCAST_QUEST_UPDATE", questId)
            end,
            function() QuestieQuest:PopulateObjectiveNotes(quest) end,
            function()
                QuestieCombatQueue:Queue(function()
                    QuestieTracker:Update()
                end)
            end,
            QuestieQuest.CalculateAndDrawAvailableQuestsIterative
        )
    else
        Questie:Debug(Questie.DEBUG_INFO, "[QuestieQuest] Accepted Quest:", questId, " Warning: Quest already exists, not adding")
    end
end
commented

Try it with and without this code block... (bracket)

Because it might auto track again when we clear the table (arrow) - I'd like to test that to be 100% sure.

image

commented

What i posted is for the accept in failed state.
The first time works without a problem, it adds map icon for triggerEnd just fine

commented

With or without the code in brackets, the outcomes are exactly the same:

[15:56:24] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_DETAIL 0
[15:56:24] Questie: [SPAM] [QuestieTooltips:GetTooltip] o_1622
[15:56:24] Questie: [SPAM] [QuestieTooltips:GetTooltip] o_3730
[15:56:26] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_FINISHED
[15:56:26] Quest accepted: Therylune's Escape
[15:56:26] Questie: [DEVELOP] QuestieTracker:UntrackQuestId
[15:56:26] Questie: [DEVELOP] QuestieTracker.RemoveQuestWatch (by Blizzard)
[15:56:26] Questie: [DEVELOP] [QuestieAuto][EVENT] QUEST_ACCEPTED
[15:56:26] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED 2 945
[15:56:26] Questie: [DEVELOP] [Quest Event] QUEST_ACCEPTED - skipNextUQLCEvent - true
[15:56:26] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[15:56:26] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - true
[15:56:26] Questie: [SPAM] Skipping UnitQuestLogChanged
[15:56:26] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[15:56:26] Questie: [DEVELOP] QuestieTracker:Update
[15:56:26] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[15:56:26] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[15:56:26] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[15:56:26] Questie: [INFO] TrackerLinePool: HideUnusedLines
[15:56:26] Questie: [SPAM] Objectives are correct. Calling accept logic. quest: 945
[15:56:26] Questie: [INFO] [QuestieQuest] Accepted Quest: 945 Warning: Quest was once accepted. IsComplete = 0
[15:56:26] Questie: [INFO] TrackerLinePool: HideUnusedButtons
[15:56:26] Questie: [DEVELOP] [QuestieMap] Unloading quest frames for questid: 945
[15:56:26] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[15:56:26] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[15:56:26] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[15:56:26] Questie: [INFO] [QuestieQuest.CalculateAndDrawAvailableQuestsIterative] PlayerLevel = 22
[15:56:26] Questie: [SPAM] [QuestieDB.IsDoable] preQuestSingle requirement not fulfilled for questId: 6
[15:56:26] Questie: [SPAM] [QuestieDB.IsDoable] preQuestSingle requirement not fulfilled for questId: 7
.
.
.
[15:56:26] Questie: [DEVELOP] QuestieTracker:Update
[15:56:26] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[15:56:26] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[15:56:26] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[15:56:26] Questie: [INFO] TrackerLinePool: HideUnusedLines
[15:56:26] Questie: [INFO] TrackerLinePool: HideUnusedButtons
.
.
.
[15:57:06] Therylune's Escape failed.
[15:57:06] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[15:57:06] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent - false
[15:57:06] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[15:57:06] Questie: [SPAM] Running full questlog check
[15:57:06] Questie: [SPAM] Quest: 945 will be updated
[15:57:06] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[15:57:06] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo] 945
[15:57:06] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[15:57:06] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[15:57:06] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[15:57:06] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[15:57:06] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[15:57:06] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[15:57:06] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
[15:57:06] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[15:57:06] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[15:57:06] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[15:57:07] Questie: [DEVELOP] QuestieTracker:Update
[15:57:07] Questie: [INFO] TrackerLinePool: ResetLinesForChange
[15:57:07] Questie: [INFO] TrackerLinePool: ResetButtonsForChange
[15:57:07] Questie: [DEVELOP] QuestieTracker:UpdateFormatting
[15:57:07] Questie: [INFO] TrackerLinePool: HideUnusedLines
[15:57:07] Questie: [INFO] TrackerLinePool: HideUnusedButtons

Everything seems to work, EXCEPT for redrawing the map icons for triggerEnd

commented

Points 2) and 3) seem to be fixed. Only 1) is missing now.

commented

And it works the very first time you pick up the quest?

How can the debug output be the same for both test cases then? Something MUST be missing.

commented

I did a quick test of a timed quest: https://www.wowhead.com/wotlk/quest=3364/scalding-mornbrew-delivery. Both test cases are exactly the same.

image

commented

First test case is on the left... second test case is on the right:

image

commented

Are you sure you merged all the code changes correctly? The whole function I posted above?

commented

Points 2) and 3) seem to be fixed. Only 1) is missing now.

In both test cases? I'm still a little confused on that point. :D You do suggest that it does work in the first test case if I'm understanding this correctly:

With Questie's code, extraobjectives are simply not redrawn when you accept a quest in that situation.

commented

When i say both cases, i mean with and without the code in the brackets.

Yes, that is the situation, yes. The map icon for escort end is shown correctly when you first accept the quest, it is correctly removed on quest fail, but it's not redrawn when you accept the quest while failed.
The icon is from a triggerEnd

commented

Yes. The "finisher" showed in both cases. I found a toon that hasn't done this quest you were testing with. Going to check it now.

commented

Did the triggerend show when you picked up the quest while failed?

commented

My logs for https://www.wowhead.com/wotlk/quest=945/therylunes-escape. they are identical save for one line. And you can see that the Magnifying Glass Icon isn't present in the second test case. So, it must be failing in an area we don't have a debug string for. But it certainly narrows down the areas I need to look at!

image

commented

Happy you are also confirming what I stumbled upon!

commented

Yep... confirmed. I don't think that is the root cause though for the Magnifier Icon to not show. This new debug string appears after the quest fails during the second test case. I just wanted to confirm that it was failing that one check.

------------------------------------------------
[13:52:39] Therylune's Escape failed.
------------------------------------------------
	[Quest is in log in a failed state. ReloadUI NOT done after Quest failed.]
	1. Quest Starter Icon IS present
	2. NPC "path" line is NOT present.
	3. Magnifying Glass Icon is NOT present.
[13:52:40] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED player
[13:52:40] Questie: [DEVELOP] [Quest Event] UNIT_QUEST_LOG_CHANGED - skipNextUQLCEvent -  false
[13:52:40] Questie: [DEVELOP] [Quest Event] QUEST_LOG_UPDATE
[13:52:40] Questie: [SPAM] Running full questlog check
[13:52:40] Questie: [SPAM] Quest: 945 will be updated
[13:52:40] Questie: [SPAM] [QuestieNameplate:UpdateNameplate]
[13:52:40] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] 945
[13:52:40] Questie: [SPAM] [QuestieQuest:PopulateQuestLogInfo]  945
[13:52:40] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[13:52:40] Questie: [SPAM] [QuestieQuest:GetAllLeaderBoardDetails] for questId 945
[13:52:40] Questie: [DEVELOP] [QuestieQuest:PopulateQuestLogInfo] Error finding entry ID for objective 1 event Escort Therylune away from the Master's Glaive of questId: 945
[13:52:40] Questie: [SPAM] [QuestieQuest] UpdateObjectiveNotes: 945
[13:52:40] Questie: [DEVELOP] [QuestieQuest:PopulateObjective] Escort Therylune away from the Master's Glaive
[13:52:40] Questie: [INFO] Registering objective tooltips for Escort Therylune away from the Master's Glaive
[13:52:40] Questie: [DEVELOP] [QuestieQuest:UpdateQuest] Quest failed
-----------------------------------------------------------------------------------
[13:52:40] Questie: [DEVELOP] [QuestieMap] QuestieMap.questIdFrames[945] was not found!			<----
-----------------------------------------------------------------------------------
[13:52:40] Questie: [DEVELOP] [QuestieTooltips:RemoveQuest] 945
[13:52:40] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] Questid 945
[13:52:40] Questie: [DEVELOP] [QuestieComms:BroadcastQuestUpdate] partyType nil
[13:52:41] Questie: [DEVELOP] [QuestieTracker:Update]
[13:52:41] Questie: [DEVELOP] [QuestieTracker:UpdateFormatting]
commented

Oh... I missed this: 2. NPC "path" line is NOT present. in the second test case. Might be a clue...

commented

Fixed the NPC "path" not showing up when it needs to be shown. But I might have a theory as to why the Magnifying Glass Icon is not showing. If I can figure out why the frame for 945 is missing and not readded... hmmm.

image

I'm going to try and prevent this from unloading during the first test case:
image

commented

Double checked, all issues in first report were solved!

commented

@Cabro this one too... not sure why it wasn't closed. But again, let's make double sure. :)