From 98b401035259a0d6aec4b449b5d1bddc97afa041 Mon Sep 17 00:00:00 2001 From: Xurkon Date: Mon, 4 May 2026 21:14:22 -0500 Subject: [PATCH] fix: silence QuestLogCache error spam in normal chat Demote GetQuest/GetQuestObjectives 'quest doesn't exist in QuestLogCache' messages from Questie:Error to Questie:Debug(DEBUG_DEVELOP). These were firing repeatedly in chat for quest IDs like 595, 959, 254048 during normal play. Messages are now only visible when developer debug mode is active. --- CHANGELOG.md | 5 ++++- Modules/Quest/QuestLogCache.lua | 8 ++++---- docs/changelog.html | 6 ++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c74fb90..d0a9d09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,12 @@ ### Bug Fixes -- **[Fix — Map Icon Completion]** Resolved a bug where quest objective icons (map pins and minimap markers) persisted on the world map and minimap after objectives were fulfilled, only disappearing after speaking to the quest giver to complete the quest. +- **[Fix - Map Icon Completion]** Resolved a bug where quest objective icons (map pins and minimap markers) persisted on the world map and minimap after objectives were fulfilled, only disappearing after speaking to the quest giver to complete the quest. - **SpecialObjectives Dirty Flag**: Added a missing loop in `SetObjectivesDirty` to reset `isUpdated = false` on `quest.SpecialObjectives` alongside the existing `quest.Objectives` loop. Previously, special objectives (e.g. demonic runestones, portal-closing mechanics) would skip the `ObjectiveUpdate` early-exit guard because their `isUpdated` flag was never cleared, preventing `objective.Completed` from being set to `true` and leaving map icons on-screen indefinitely. - **Completion Guard in PopulateObjective**: Added a defensive check in `PopulateObjective` so that objectives without an `Update` function still unload their spawned icons if `objective.Completed` or `quest.isComplete` is already `true` from a prior update cycle. +- **[Fix - QuestLogCache Error Spam]** Silenced repetitive `[ERROR] Please report this error. GetQuest/GetQuestObjectives: The quest doesn't exist in QuestLogCache` chat messages that fired for quests not present in the cache (e.g. quest IDs 595, 959, 254048). + - **Root Cause**: `QuestLogCache.GetQuest` and `QuestLogCache.GetQuestObjectives` called `Questie:Error(...)` unconditionally whenever a quest ID was not found in the cache, flooding chat on every objective update cycle. + - **Fix**: Demoted both calls (and the accompanying `debugstack` print) from `Questie:Error` to `Questie:Debug(Questie.DEBUG_DEVELOP, ...)`. The messages are now silent during normal play and only visible when developer debug mode is active. ## Session 34 (2026-05-02) diff --git a/Modules/Quest/QuestLogCache.lua b/Modules/Quest/QuestLogCache.lua index 632bb5f..435ae02 100644 --- a/Modules/Quest/QuestLogCache.lua +++ b/Modules/Quest/QuestLogCache.lua @@ -286,8 +286,8 @@ function QuestLogCache.GetQuest(questId) if questId == 0 or (not Questie.started) then return nil end - Questie:Print(debugstack(1, 20, 4)) - Questie:Error("Please report this error. GetQuest: The quest doesn't exist in QuestLogCache.", questId) + Questie:Debug(Questie.DEBUG_DEVELOP, debugstack(1, 20, 4)) + Questie:Debug(Questie.DEBUG_DEVELOP, "GetQuest: The quest doesn't exist in QuestLogCache.", questId) return nil end return cache[questId] @@ -303,8 +303,8 @@ function QuestLogCache.GetQuestObjectives(questId) if questId == 0 or (not Questie.started) then return {} end - Questie:Print(debugstack(1, 20, 4)) - Questie:Error("Please report this error. GetQuestObjectives: The quest doesn't exist in QuestLogCache.", questId) + Questie:Debug(Questie.DEBUG_DEVELOP, debugstack(1, 20, 4)) + Questie:Debug(Questie.DEBUG_DEVELOP, "GetQuestObjectives: The quest doesn't exist in QuestLogCache.", questId) return {} end return cache[questId].objectives diff --git a/docs/changelog.html b/docs/changelog.html index 49d22a9..b198945 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -184,6 +184,12 @@
  • Completion Guard in PopulateObjective: Added a defensive check in PopulateObjective so that objectives without an Update function still unload their spawned icons if objective.Completed or quest.isComplete is already true from a prior update cycle.
  • +
  • [Fix — QuestLogCache Error Spam] Silenced repetitive [ERROR] Please report this error. GetQuest/GetQuestObjectives: The quest doesn't exist in QuestLogCache chat messages that fired for quests not present in the cache (e.g. quest IDs 595, 959, 254048). + +