Mythic Plus Addon Api reward keystone call returns incorrect value for keystone level

Edit: Wanted to add that the great vault UI and everything in-game seems to function properly, just the Api call seems to return incorrect data so addons report the lower ilvl rewards.

I was looking into why an addon (SavedInstances) was returning reward levels for next reset’s Great Vault as BFA ilvl rewards (125-130 ilvl) and noticed that I didn’t have that same issue on another character. (The second character shows a 226 reward as it should)

Now this doesn’t relate to this specific addon, because I ran the following script against both characters and this is what I found:

Script:

local runHistory = C_MythicPlus.GetRunHistory(false, true);

for i = 1, #runHistory do

runHistory[i].rewardLevel = C_MythicPlus.GetRewardLevelFromKeystoneLevel(runHistory[i].level);

runHistory[i].difficulty = C_MythicPlus.GetRewardLevelForDifficultyLevel(runHistory[i].level);

runHistory[i].name = C_ChallengeMode.GetMapUIInfo(runHistory[i].mapChallengeModeID);

ChatFrame1:AddMessage("-----------");

ChatFrame1:AddMessage("Name: " … runHistory[i].name);

ChatFrame1:AddMessage("Reward: " … runHistory[i].rewardLevel);

ChatFrame1:AddMessage("Reward (D): " … runHistory[i].difficulty);

ChatFrame1:AddMessage("MapID: " … runHistory[i].mapChallengeModeID);

ChatFrame1:AddMessage("Level: " … runHistory[i].level);

ChatFrame1:AddMessage("This Week: " … tostring(runHistory[i].thisWeek));

ChatFrame1:AddMessage("Completed: " … tostring(runHistory[i].completed));

ChatFrame1:AddMessage("-----------");

end

And from the character showing 125 ilvl rewards I received this output:

[16:08:59] Name: Mists of Tirna Scithe
[16:08:59] Reward: 125
[16:08:59] Reward (D): 125
[16:08:59] MapID: 375
[16:08:59] Level: 14
[16:08:59] This Week: true
[16:08:59] Completed: true

While the other character:

[16:40:47] -----------
[16:40:47] Name: Mists of Tirna Scithe
[16:40:47] Reward: 226
[16:40:47] Reward (D): 226
[16:40:47] MapID: 375
[16:40:47] Level: 14
[16:40:47] This Week: true
[16:40:47] Completed: true
[16:40:47] -----------

Both characters are on the same realm, same account, same guild, from the same computer, etc. I also ran keys in BFA with both characters on their present realm.

Any idea why the “C_MythicPlus.GetRewardLevelFromKeystoneLevel” API call returns a BFA ilvl value for one of them?

Did you run one having logged out between running the key and the other not?

Some times the GV doesn’t update till you’ve relogged.

I think the last key I had run on either character was the day before so it had been at least 12 hours. And my great vault works fine and shows all the correct item levels so I know they are calculating the numbers properly internally, just the API calls they expose for addon consumption aren’t using the same logic.

Have you looked at how Blizzard_ChallengeUI.lua or whatever (not at my usual WoW machine now) handles this?

I suspect there’s an event that’s registered and listend for updates.

You may be running the code on one character and it’s never getting the event but it does happen later, and that information is cached when you log into another character.

If both characters have identical eligibility and should see identical data, exit the game client completely and log into one and then exit the game client completely and log into the other. Then try logging into one and doing a soft logout to the other. Then exit the client completely and do it again but swap the order you log in.

I suspect you’ll see a pattern emerge from that test. Generally for server-fetched data, you make a query of sorts, listen for the event, and then use that data. I haven’t looked at your issue but it fits a pattern.

Is the character affected a Mage, by any chance? I have the same bug, and it impacts only my mage, my other three max level characters get the correct ilvl displayed by SavedInstances.