It looks like most, if not all, Game Data endpoints for World of Warcraft retail are throwing “429 Too Many Requests” very quickly. Never had this problem before, so it looks like a quota / rate limit has been set somewhere where it previously didn’t exist or the value got changed in a way that was not echoed out.
Any help would be appreciated!
EDIT with fix:
Retry logic solves the problem. I am getting back a valid response after 1 retry for all of my calls.
Here is my retry function in Go:
func RetryFetch[T any](fetchFunc func() (T, *blizzard.Header, error)) T {
var zeroValue T
for i := 1; i <= NumRetries; i++ {
result, _, err := fetchFunc()
if err == nil {
return result
}
fmt.Println(err)
time.Sleep(1000 * time.Millisecond)
if i == NumRetries {
return zeroValue
}
}
return zeroValue
}
Called with:
categoriesList := RetryFetch(func() (*wowgd.AchievementCategoriesIndex, *blizzard.Header, error) {
return blizzClient.WoWAchievementCategoriesIndex(context.Background())
})
If you are using a different language, I am sure you can throw the above into Chatgpt and have it transcribe to whatever you are coding in.
Hope that helps folks!