diff --git a/src/services/questService.ts b/src/services/questService.ts index 9a21f991..cc9449fd 100644 --- a/src/services/questService.ts +++ b/src/services/questService.ts @@ -83,10 +83,16 @@ export const updateQuestStage = ( `Quest stage index mismatch: stage is ${ChainStage} but array size is ${quest.Progress.length}` ); } - const questStage = quest.Progress[ChainStage]; // guaranteed in-bounds now + // Note that the client may use index 0 as well, e.g. for rising tide's initial inbox message. 'm' is not tracked for it. + if (ChainStage >= 0) { + const questStage = quest.Progress[ChainStage]; // guaranteed in-bounds now - for (const [key, value] of Object.entries(questStageUpdate) as [keyof IQuestStage, number | boolean | any[]][]) { - (questStage[key] as any) = value; + for (const [key, value] of Object.entries(questStageUpdate) as [ + keyof IQuestStage, + number | boolean | any[] + ][]) { + (questStage[key] as any) = value; + } } };