[Classic] SendAddonMessage problems

I am the author of a popular suicide kings loot distribution mod. It’s been around since BC up until ML was removed, and revived for Classic WoW.

Since about 1.13.3 C_ChatInfo.SendAddonMessage() has been broken. My mod relied on the ability to send the config to all raid users, about 3-4K of data. I have done all the usual things to mitigate the server flood tripwire, such as using the latest AceComm and ChatThrottleLib, but things are still failing. Even with CTL messages are silently ignored if they come too fast. Which given CTL’s sole reason for existence, shouldn’t be happening.

I suspect this was a change introduced when Blizzard was clamping down on using channels. I do not think CTL itself is at fault as the API seems to accept data with no indication of failure, and then randomly decide not to deliver any of the messages, or just some, which is even worse.

This will be extremely difficult to work around. I am happy to provide any additional information should it be required, and to test.

I’ve experienced the same issue. What you’re seeing is the throttling that Blizzard implemented in mid-may to try to mitigate the amount of network traffic generated by threat addons.
Since they didn’t have a means to reliably pull real time threat data about other raid members, they needed to communicate a large amount of data. Because of this, Blizzard enforced throttling and then in 1.13.5 they added the Threat API [source].
Unfortunately, they never withdrew the throttling.

From observing throttled behaviour, I can confirm the following:

  • It is intermittent. It does not occur at the same time every day, nor does it necessarily occur every day.
  • It is not occurring on all realms. I’m on Remulos-US and I’ve only experienced throttling a few times.
  • C_ChatInfo.SendAddonMessage has a return value - whether or not the message was successfully sent. During periods of throttling, this will return true regardless of whether or not it is being throttled.
  • Recent changes to my code suggest that the whisper channel may not be throttled. I haven’t experienced any issues with using that channel.
    • A quick note on this point - I don’t know how the backend of the messaging system operates, but the fact that I’m considering sending 40 messages via the whisper channel as opposed to 1 message via the raid channel… I’m lost for words.

Unfortunately, at this stage I can’t offer you a solution. I’m still trying to arrive at one myself. I only offer what I know and hope that it might be able to help you.

There was a bit of discussion about this on WoWUIDev and the immediate answer is, simply: send less data. Not the answer I would have preferred but it is valid. However the problem comes when even after a developer really does do everything possible to minimise the payload, there will come a point where even that runs into the throttle.

I understand the reasons behind the current throttle but I think a lot (if not all) of the problems they were trying to solve have no gone away and the throttle rates could be better tuned.

All I can hope for is that someone from Blizzard, or someone with influence that can talk to someone at Blizzard, and get them to rethink / retune the throttle mechanism a little bit. And I will do what I can to further reduce the payload size in my mod.