Questie

Questie

116M Downloads

Getting disconnected every time I turn in a quest.

sjfraley1975 opened this issue Β· 93 comments

commented

Bug description

Screenshots

Questie & WoW version

commented

Yes I understand the principle, but it's inconsistent. There are people who have used auto turn in and auto complete on 7.0.0 and never had a single disconnect, and there are those of us that had as many features disabled as possible and still disconnected regularly. If it was purely about frequency of making calls, it wouldn't be so inconsistent, right?

commented

@sjfraley1975 @SoFisht @Gogo1951 @huangspiel @Yttrium-tYcLief @filipeg165 @hamderbob @EasternDragon @submarines-and

We've got a second beta verison for you guys. Thank you very much for all the feedback you guys provided on the previous beta build, that was very valueable and confirmed we are on the right way.

The build below removes the batching from Questie Auto again, but instead improved the overall performance of determing which quests are available. It also added some "early returns" to hinder some code parts to be run over and over again.

Again your feedback is very appreciated either here or on Discord! ❀️

Questie-v7.1.0.beta.0.zip

PS: About the reason for this issue: We are still not sure, but the initial idea about an "API throttling" is kinda off the table. It might still be an issue about caching issues or something similar, but nobody of the team was yet able to experience this issue.

Fact is: The Questie functions in question (Weapon Skill/Faction updates together with quest accepting and completing) don't have the best performance and triggered many API calls and ran for quite some time. So "bad" hardware/network or simply a lot of other addons, could also have been an issue. Also on so called "mega servers" the overall performance of the servers itself is getting towards their limits, so issues like these shouldn't be a surprise to anyone πŸ˜…

commented

@sjfraley1975 @SoFisht @Gogo1951 @huangspiel @Yttrium-tYcLief @filipeg165 @hamderbob @EasternDragon @submarines-and

We've got a "beta" version which tackles the disconnect issue. It would be great if you could install this (manually), play with it for a bit and report if that helps you.

https://github.com/Questie/Questie/files/9500490/Questie-v7.0.3.beta.0.zip

commented

7.0.3 beta0 - skilled up maces 280 - 310 very rapidly with no disconnects. Previously, I would always disconnect before 10 skill ups. I don't use auto turn in, so this version solves the issue for me.

commented

@BreakBB will test it out later today after work and see how it goes

commented

@BreakBB I checked quickly, I will test more after work.

Before installing, I cleared Cache and WTF, set Questie (additionally enabled auto accept and complete quest).

I did some quests and had 7 quests to give, so far zero DC. I will do more tests later.

commented

That is very valuable feedback @Yttrium-tYcLief thanks for it. We will keep looking at it to find the best solution πŸ‘πŸ»

commented

Using the 7.0.3 beta0, so far no disconnects. The autoaccept/hand-in delay is VERY noticeable, to the point that it sort of detracts from the experience. My timer tweak above doesn't have that side effect, but it obviously has its own issues too.

IMO I think the ideal solution would be to remove the autoaccept/hand-in delay and implement a rolling batch timer, like @submarines-and's solution, on the QuestieQuest:CalculateAndDrawAvailableQuestsIterative function itself.

commented

Worth noting I have not had the opportunity to powerlevel skills yet, so not sure if the 7.0.3 fixes also solve that, but so far no random disconnects or hand-in disconnects.

EDIT: Can confirm that at least with spamming smelting for ~50 levels, no disconnects.

commented

7.0.3 beta0 skilled weapons dualwielded 1H axes from 50 to 250 without any disconnects. that is a great improvement, since disconnected around the same as @submarines-and wrote.
will keep look for random DC's and see if I can find something a lot of turnins to test auto accept and turnin

commented

Reporting back, with 7.0.2 I was able to play for around 1 hour without issues, as soon as I turned in my first quest, instant disconnect. With 7.0.1 I was getting DCed every 5 minutes looting and fighting mobs, on 7.0.2 I only get DCed turning in quests now.

Also, got DCed after making 3 bandages with a skill up, logged back in, made 3 more, disconnected again, also happened with 3 food I cooked with skill ups.

commented

I played more, did quests, skilled weapons, clicked on Questie options, generally did everything to trigger DC. And so far no DC, so in my case (hopefully) problem solved.

commented

7.0.3 beta0 skilled weapons dualwielded 1H axes from 50 to 250 without any disconnects. that is a great improvement, since disconnected around the same as @submarines-and wrote. will keep look for random DC's and see if I can find something a lot of turnins to test auto accept and turnin

Just auto accepted turnin quest and auto handed it in 27 times in one go, no disconnect, it turned it in on a slower pace than what we have seen before but not bad and just handled it smooth.

commented

Haven't had a chance to try it out yet, but was there any indication of why some players might experience the issue but not others?

Realized I hadn't mentioned it, but I recently came back to the game and made a new account. I wouldnt be surprised if new accounts or accounts otherwise flagged as more likely to be bots or similar could be a common point with folks experiencing issues. Just a pet theory.

commented

@SoFisht It seems that the majority of the problems are related to a function that determines which quests the player is eligible for. If this function is called too frequently (rapid skillups, like with weapon training or smithing) or has too much data to process (lots of quests available), especially if both are happening at once, the server disconnects you for sending/requesting too much data. Basically, it's an anti-DDoS feature on the server end, that is either new with Wrath or has tighter thresholds.

The 'pattern' for triggering it could be a lot of things - lots of skillups, being within certain level ranges so you have a LOT of newly eligible quests fairly often, lots of players hopping in and out of your group, etc. System performance and network performance are also likely factors. All in all, there's too many variables in play though, that all interact with each other. It's not one single thing.

Efforts to fix the issue are centered around performing these operations more efficiently (both faster and with less server load) as well as less often, which should prevent Questie from ever getting close to what Blizzard has set as the 'spam' threshold.

commented

Haven't had a chance to try it out yet, but was there any indication of why some players might experience the issue but not others?

Realized I hadn't mentioned it, but I recently came back to the game and made a new account. I wouldnt be surprised if new accounts or accounts otherwise flagged as more likely to be bots or similar could be a common point with folks experiencing issues. Just a pet theory.

I can say that for me the disconnects was on an old installation back from vanilla classic and upgraded to tbc classic when that was released

commented

Version 7.1.0, clean install, 4h of playing, doing quests, skill weapons, clicking around Questie options, auto quests enabled, no freezes of any kind. From myself I can say that the problem solved. Thank you @BreakBB

commented

Installed 7.1.0 Beta and I gotta say, everything is running smoothly! Been playing for around 3 hours and no disconnects.

Turned in and accepted quests as I usually have, skilled up a bunch of professions and no disconnects at all. Thanks for all the effort on these beta versions!

commented

Just to add to it, I've been running the 7.0.3.beta.0 for a couple days with no further disconnects. Thanks for the hard work to troubleshoot this even when it still hasn't happened to you!

commented

Ditto, I've been running the previous beta version now without issues. will be testing the new version (and finally installing more addons) this evening and will report back if I encounter any issues. Kudos to you folks for finding a solution despite the weirdness with replicating it.

commented

Also getting DC'd - happens with Auto Turn In / Auto Accept enabled. But doesn't happen when you disable those. Saw it when a quest giver has more than 1 quest especially.

Also happens on occasion when looting quest items.

commented

I've been watching livestreams of folks using questie and haven't seen the crashes so I'm not sure if there's some per-user explanation there. In any case, I hope it gets resolved, wherever the issue ends up being. I'll report back if I see any change on my end.

commented

Sounds good.

If you don't care about your Journey data on that character @SoFisht Try to "Reset Questie" (weak shot in the blue): /questie -> Advanced -> Reset Questie

commented
commented

Thanks @sjfraley1975 πŸ‘πŸ»

So after resetting Questie the issue fully went away? Or is it just for a short while and/or changing settings will make it appear again?

commented

Every time I turn in a quest I get disconnected about 2 or so seconds later. I disabled all other addons and had just Questie running, it only happens when Questie is enabled. This is for the version 7.0.0 running on WotLK Classic. Before installing any addons I deleted WTF, Cache, and the interface folders so I had a fresh start with all addons.

commented

Issue is widespread, out of 5 people in a party everyone had experienced it. We all had auto-accept enabled.

commented

Hey @sjfraley1975 we have to look into this. We tested a few things before releasing v7.0.0 and didn't have this issue, so not sure what is causing it.

I guess you are leveling a DK?

commented

FWIW, I've been having intermittent crashes with both 7.0.0 beta2 and 7.0.0. The only thing that seems to keep them away is using Questie's built-in "reset" functionality. Changing settings seems to cause increasingly frequent crashes, with no obvious trigger. I went to the length of reinstalling the game and updating drivers and the works thinking it must be my install, but having Questie running at something other than default settings is the only thing that I've isolated.

*edit: I'm leveling a nelf druid on the fresh server, fwiw.

commented

Thanks for the information and testing all kind of stuff @SoFisht πŸ™πŸ»

Does the crash only happens on quest turn in? And can you verify this is not happening without Questie?

commented

Realized I erroneously said "crashes", meant disconnects. I've edited my post.

Can't speak for OP since it might be a slightly different issue, but I was getting them all over the place. While killing mobs, while fishing, nothing obvious seemed to be causing it on my end, And yes, I've had probably 50-100 DCs since servers went live and none without Questie enabled.

commented

@sjfraley1975 are you also playing on a fresh server?

It could indeed be that this is an issue caused by the fresh servers, as the server as well has to cache up the quest data. And then with Questie asking for data too often/too fast might cause it to behave badly πŸ™ˆ

commented

@Gogo1951 are you also playing on a fresh server?

commented

@SoFisht @sjfraley1975 did you also use Auto Accept/Complete?

commented

Playing on Faerlina. Not a fresh server.

Playing a DK.

Also happens on bulk turn ins for repeatable quests.

Like https://www.wowhead.com/wotlk/quest=9744/more-tendrils

Turn in and it boots you out.

commented

i still get disconnected without Auto Accept/Complete

commented

I think it needs a 1 second pause between turn ins. It's not consistent. I can turn in 5 and then on the 6th it DC's me. Happens a lot picking up quests from givers and on turn in. I think Blizzard is trying to throttle actions tonight, or they changed the threshold of what's acceptable for "auto turn in" "pick up" times.

commented

Probably DC'd 15 times getting this =P

image

commented

When I pause like 2-3 seconds it works fine. It's just when I try and go fast.

image

commented

Yeah if I click as fast as I normally do... instant DC.

If I click like a slow boomer it works fine.

commented

I fear this really has to do something with Blizzard trying to slow things down (or the servers are too crowded). We made no changes to our auto complete code afaik.

The servers are really full atm and therefore many API requests are happening. And generally random disconnects (without internet issues) are usually related to hammering the API πŸ™ˆ

We will look into it and appreciate all further information!

commented

I think it needs to hard-code a 1-2 second pause on auto-turn ins. I think it's being throttled.

commented

its DC aswell when u pickup to fast........

commented

I can confirm this is happening to me as well (wrath, fresh, 7.0.0, clean WTF), and it's much more consistent with auto accept/hand-in, but it even occurs when just out in the world killing quest mobs (for kill quests) and looting. Disabling Questie fixes the issue 100%.

commented

As written above, this is most likely caused by Blizzard adding a throttle (or reducing the limit) to the API. Not much we can do about it, if this also happens without auto accept/complete.

Slowing down on questing might reduce the disconnects (and we are aware this is not something our users want to do πŸ™ˆ ).

commented

For what it's worth - other quest addons (Zygor, Classic AutoQuest) do not actually trigger the rate limit. It also seems to be an issue for only players with exceptionally low ping - mine is 13ms, players in my party further from the servers are not experiencing it.

Possibly the Questie delay threshold is just slightly too low?

commented

Well Questie is much more than other questing addons and therefore does much more API calls in general.

Yeah ping and overall PC performance will impact this, as more API calls get through.

Also there is no real "delay" in Questie whereever it is not needed. If blizzard really added an API threshold (which is just our best guess at this point) we can't do much.

We will look into it, try to reproduce it and will keep you posted about things that might help and/or we can do on Questies side.

commented

As an experiment, I fired up a VPN to see if artificially increasing my ping would alleviate the situation. Alas, even going from 13ms to 750ms caused disconnects with Questie's auto-handins/accepts.

While it seems like Questie is exacerbating the issue, something is certainly wrong with Blizzard's rate limit implementation when even their own combat interactions and auto-loot can cause consistent disconnects. Hopefully they address it soon.

commented

So you get disconnected without Questie @Yttrium-tYcLief ? When looting or randomly in combat? Looting quest items will trigger Questie stuff as well, which might then again causes disconnects.

commented

I have been disconnected in the middle of looting non-quest items, and in the middle of combat (which led to my party frantically trying to save my AFK self) without any quest interactions occurring. However, disabling Questie still fixes those issues 100%, which is REALLY weird to me.

commented

It's really rough. I turned every add-on off except Questie, and deleted my saved variables so it would be fresh...

I got DC when:

  • Picking up / Turning in quests.
  • Looting
  • Crafting... leveling first aid... and I had to just give up on other professions.

The DCs were frequent, I probably had over 100. Once I got DC'd and it took an hour to get back on.

Really disrupted my leveling. Friends I was running with are all 67-69 and I ended the night at 65. They used Reseted XP. I stuck with Questie...

Just brutal to have the DCs though. I get it's probably Blizzard throttling things, but it'd be good if Questie could play ncie with being throttled.

commented
commented

@BreakBB I was not using auto-complete usually. I used it for a few minutes and definitely experienced crashes during that time, however. My experience aligns with @Yttrium-tYcLief that it seems to happen during essentially everything, though again, resetting questie to default seemed to be stable.

commented

I'm on Skyfury US.

Can confirm today I was getting crashes even after a full reset, so while that does seem to help for a while, it's definitely not a solution.

commented

@BreakBB

Going back to this... I think you need to throttle the auto-accept / auto-turn in.

I just use an auto-turn-in script now, and if I hit it more than say once ever GCD (1.5 sec) I get DC'd.

/script SelectGossipAvailableQuest(2)
/script CompleteQuest()
/script GetQuestReward()

No add-ons, if I mash that script I get DC'd. To me, that says Blizzard is throttling this stuff.

commented

But yeah, even crafting... if I leave Questie on and NOTHING else, I get DC'd. It's doing some check as I make items as they hit my bag. Only happens as I make bulk items. Bandages, etc.

commented

@BreakBB

Going back to this... I think you need to throttle the auto-accept / auto-turn in.

I just use an auto-turn-in script now, and if I hit it more than say once ever GCD (1.5 sec) I get DC'd.

/script SelectGossipAvailableQuest(2) /script CompleteQuest() /script GetQuestReward()

No add-ons, if I mash that script I get DC'd. To me, that says Blizzard is throttling this stuff.

Are you actually turning in quests while hammering that script?

commented

Oh and also what region are you all playing on (US, EU, ...)?

commented

On a DK, I kill a lot of stuff and then I just flip to rapid looting (modifier + scrollwheel to interact with corpse -- default WoW UI options), but with Questie enable this causes me to DC. If I run no addons, I can do it fine. If I run just TSM and Elv and Threatplates it works fine. The moment I turn Questie back on, if I try and loot too fast... it DCs me.

commented

I'm having this issue too, but nothing listed seems to help. I've reset WoW settings back to defaults and reset Questie in the advanced menu. I've gone slowly to ensure I'm not contributing to rate limiting. I've been disconnected when accepting a quest, completing a quest, advancing a quest, etc. I've been disconnected speaking to a quest available NPC before I could accept it. Seems any quest-related action can trigger it. I'm playing classic on the fresh server Skyfury. Happens with both 7.0.0 and 7.0.0-beta2. WoW has never been installed on this PC before about 3 days ago.

commented

image

Getting DC'd again... puts me in a very long queue. Oof.

If you turn off Questie's Auto Accept and Auto Turn In... for me that stopped the disconnects around those activities.

I used Quest Automation from LTP. It auto turned in and picked up / dialogued on quest givers fine. Their "auto-quest" features worked without getting me DC'd.

I still got DC'd from "rapid" looting and "bulk" crafting when I had Questie enabled.

Not sure if a high-pop server is throttled more than a low-pop server, but if I run no other add-ons other than Questie, it still happens.

If I run the "macro" to turn in, and I mash it really fast, I can force a DC, but if I just do it ever 1 second or so... it was fine.

I also have to go really slow when I loot... no "mouse-wheel rapid looting" or that prompts a DC -- this ONLY happens with Questie running, I can loot as fast as I normally do if I turn off Questie, but leave other addons, like TSM or Gargul (which both track loot that goes into your bag) running.

My take away... there's something with how Questie is doing the automation and reading items as they hit your bag that needs to be optimized because it's causing DCs on quest pick up, turn in (but I think turn in and then rapid pick up of the next quest), and looting.

commented

@Gogo1951 the marco to force DCs, do you smash it out in the wild or are you actually turning in quests?

Our take atm is, that the US server might have some API throtteling active. I was trying to find someone yesterday on my EU server who has the same problems, but couldn't find anyone. Nobody did experience DCs. We think that Questie currently queries the server too much for the throtteling to be triggered and DC the user.

We know getting disconnected (especially on servers with queues) is really bad and disrupts the play. We try to gather as much information as we can and try different things, so we hopefully be able to reproduce it soon!

@kmccormick @sjfraley1975 @Yttrium-tYcLief @huangspiel in what region are you guys playing (EU, US, ..)?

commented

I am playing on Maladath (US east), and connecting from the east coast.

commented

Playing Skyfury (US West fresh realm) and connecting from the west coast US. Happy to help with any debugging steps. Right now I'm keeping Questie disabled and just enable/reload UI, study the map for a minute, and then disable it again.

commented

ChefMan on Discord reported:

something new for the DC bug, I did a fresh install and turned off auto tracking of quest and everything was great, then after a few hours i turned off show Event Quest and show PvP Quest.... then it started booting me while just standing around in IF.

commented

@Gogo1951 the marco to force DCs, do you smash it out in the wild or are you actually turning in quests?

I had to get my Aldor / Sporeggar / Cenarion Expedition / Lower City / etc. rep maxed on my new DK.

That meant a lot of turn-ins.

Using Questie, even as the only add-on enabled, it would DC me if I tried to use auto-turn-in. It might let me get 2-3 turn-ins first, but it would DC me.

But if I ran the auto-turn-in from LTP, it worked OK. I noticed theirs had the slightest pause between attempting to turn in more stuff.

So I just emulated that with the script... I waited 1.5 seconds before clicking the turn-in macro. (It's funny... Blizzard's anti-botting made me use Auto Hot Key to bot.)

I think you just need to add a 1 second pause to the auto-turn-in that would fix it. Literally just add a 1 second pause after turning in a quest. It's got the First Dialog window with the NPC, it tries to turn in a quest... leave that as is. But on the confirm window, where you are given gold / just wait 1 second before clicking the OK button and that should be enough not to get people DC'd. I'd bet money on that.

commented

@Gogo1951 People had this occurring without auto-turn-in enabled or while just questing, so while it might trigger the problem it's probably not the cause.

commented

I usually play with all social options disabled, I've noticed no difference having it on or off.

commented

Everyone having this problem please try disabling the lowermost option in the "Social" settings (Share quest progress with nearby players) and see if that helps.

Screenshot_20220901_203746

commented

If it helps narrow down at all, one repeatable thing I've seen is that if I leave Questie disabled (unloaded) and do a quest, then when I go to enable it, after the reload, I get instantly disconnected. I wonder if there's something Questie does repeatedly, as well as something it forces upon being 'out of sync' so to speak, that consists of too many API calls?

I will be playing a lot today and will try disabling various features of Questie until I can narrow down what's to blame for the random (non-quest) disconnects.

commented

At this point I've disabled every feature Questie has an option for disabling, but I'm still getting repeated crashes when advancing any quests. A full Questie reset seems to fix it for maybe 15 minutes, but that might just be anecdotal. Disconnects seem to be entirely random regardless of what I'm doing, beyond autocomplete/autoaccept guaranteeing it. I can experience no disconnects for 30 minutes, and then suddenly I get disconnected, login, and get disconnected as soon as the game loads, and then repeat the cycle 5 times before it eventually gets over that hitch and I'm allowed to play again.

And again, I reiterate - disabling Questie, regardless of the status of other addons (all disabled or more than a dozen big ones enabled), completely stops all disconnects.

commented

Also really easy to reproduce this if you grab a quest with auto-turn in on while running past the quest giver. Right click and keep moving. You'll get DC'd ever time. Even on low-pop realms. No other addons enabled.

commented

Just wanted to contribute with the reports. Read every single reply on here and I'm experiencing disconnects as well.

Used Questie 7.0.0 on release day and now tried 7.0.1, same problems with disconnects. I deleted every single addon I had except Questie, kept disconnecting, disabled Questie, problem is fixed. My disconnects were random, but mostly while I was in combat (as far as I remember, they were all quest related mobs) or just running around (not even looting), also, I never had auto-accept/turn in enabled.

None of my guild mates experienced this issue at all, which is weird, because they are all running the same version of Questie as me on the same server, but I've read around as I was playing on general chat, people complaining about this too. Also, I was using it (probably like everyone else here) before the pre-patch released and everything was fine, my guess is Blizzard is doing some throttling as mentioned above a few times.

I'm on the fresh server Maladath on US by the way.

commented

Hello wanted to contribute to this also, playing on a low pop EU server.
I have tried DC when making items in bulk, power lvling inscription, and with standing fighting with a mob and leveling weapon skill. was going through all the addons and first stopped when disabling questie.
then I tried to delete saved varibles and the addon, afterwards going through every folder to delete settings that might have been left behind.
Then I installed the addon again and logged into the game, waited untill everything was loaded and then started to setup questie anew, then suddenly while ajusting the slider for how many levels below your current level you want to see quest, I got DC'ed again.

commented

Hey @hamderbob could you also try to delete the Cache folder of WoW and startup the game again? We are still in the dark what is acutally causing this πŸ™ˆ

commented

@BreakBB will do that and try going on another char to see if I can recreate it there and report back

commented

Hi, I also have a problem with DC. Since the Pre-Patch launch, when I installed Questie I started getting DCs when handing in quests, it wasn't with every quest, rather randomly, what I noticed was only with Questie after handing in a quest the game would catch a freeze for 0.5s (it was version 7.0.1). After upgrading to version 7.0.2 additionally DCs started happening when killing mobs e.g. I was taking a quest, and when I started killing mobs for that quest, I would get DCs. Problems also occurred in Questie options, when I set something I would suddenly get DC. I think I tried everything, clearing cache/WTF, reinstalling WoW, disabling individual modules in Questie, checking on completely different characters/realms. I checked one more thing, I downloaded version 7.0.0, on this version DC is a little less and there is no this freeze.

commented

We have a single report of disabling the Comms module entirely fixing the disconnects. If you are affected please try if this change fixes the disconnects (and reverting it makes them come back):

diff --git a/Modules/QuestieInit.lua b/Modules/QuestieInit.lua
index 24ec8c10..8271526d 100644
--- a/Modules/QuestieInit.lua
+++ b/Modules/QuestieInit.lua
@@ -169,7 +169,7 @@ QuestieInit.Stages[3] = function() -- run as a coroutine
     QuestieTooltips:Initialize()
     QuestieCoords:Initialize()
     QuestieQuestTimers:Initialize()
-    QuestieComms:Initialize()
+    --QuestieComms:Initialize()
 
     QuestieSlash.RegisterSlashCommands()
commented

Unfortunately, disabling QuestieComms (using the diff above), after upgrading to 7.0.3, did not fix the issue for me. Logged in, immediately handed in a quest (manually), and about one second later, disconnected.

I'll continue playing with Comms disabled to see if it helps the seemingly random disconnects though - perhaps it just doesn't fix the handin/accept ones.

The above disconnect happened without it, but I am also now testing with the potential change mentioned in #4042 regarding disabling the CHAT_MSG_SKILL handler.

commented

@Muehe

I disabled comms, and I still get DC'd.

For giggles, turned off every other add-on and I still get DC'd.

Happens on looting items. Not every time. Happens more often when I "mouse wheel loot" items - DKs can kill a lot of stuff fast when Questing and so looting them all with the Ctrl + Mouse Scroll is faster. This works fine when Questie isn't enabled (and all other add-ons are) but with Questie enabled every so often I get DC'd when looting.

Happens on turning quests in. Not every time, happens a lot more with auto-turn-in enabled. Having even a 1.5 second pause to the turn in I think would fix this for bulk-turn-in quests. Basing this on the fact that I have a turn-in macro, and I push it with Auto Hot Key every 1.5 second and I don't get DC'd when turning in rep items. Had to do a lot of that these last few days getting my new DK up to speed. Much better to have a slight pause, than get DC'd. To test this, simply buy a bunch of rep items and flip on auto-turn-in... you may get 3-4 turn-ins, but then you'll get DC. Or turn in a quest while running through the quest giver. Don't stop moving... and just right click as you run... you'll make it about 10 feet away before you get DC'd.

commented

So reporting back so far:

  • Disabling the CHAT_MSG_SKILL function (commenting all actions within it, but leaving the function intact) definitely does fix the near constant disconnects when powerleveling tradeskills (for instance, smelting a bunch of ore).
  • Disabling the QuestieComms module does seem to help most of the seemingly random disconnects when walking around the world, but does not fix the disconnects when picking up new quests, even when done manually.
commented

If the issue is due to throttling, can maybe a global debounce system be introduced? I am thinking most events would only need to update once every few seconds.

As a crude example, I swapped the skill function for the below, preventing triggering more than every 5 seconds and it keeps me online while spam leveling weapon skills. The downside of the below is that it triggers on the FIRST event and then waits. Traditionally, you would want it to trigger on the LAST event, but I could not figure out how to write that in LUA.

local debounce = false

--- Fires when some chat messages about skills are displayed
function _EventHandler:ChatMsgSkill()
    print("TRIGGER") 
    if not debounce then
        debounce = true

        print("GO")

        Questie:Debug(Questie.DEBUG_DEVELOP, "CHAT_MSG_SKILL")
        local isProfUpdate = QuestieProfessions:Update()
        -- This needs to be done to draw new quests that just came available
        if isProfUpdate then
            QuestieQuest:CalculateAndDrawAvailableQuestsIterative()
        end

        C_Timer.After(5, function()
            print("RESET")
            debounce = false
          end)
    end
end
commented

I apologise if this is a terrible idea, but here is v2. Works for me when skilling/questing, but since this is anecdotal, it could of course also just be luck on my part.

Save the last incoming callback and run that after x seconds.

Util

--- Throttles function calls
function Debounce(callback)
    local functionId = math.random(1, 100) 
    local debounce = false
    local lastCallback = nil 

    return function()
        print("TRIGGER ", functionId)

        -- Store incoming callback
        lastCallback = callback

        if not debounce then

            -- Block additional runs
            debounce = true

            C_Timer.After(5, function()
      
                -- Run final callback
                if lastCallback ~= nil then
                    print("GO ", functionId)
                    lastCallback()
                end

                -- Reset
                print("RESET ", functionId)
                debounce = false
              end)
        end
    end
end

Then I wrapped all registering in the util, which returns a debounced function.

    Questie:RegisterEvent("CHAT_MSG_SKILL", Debounce(_EventHandler.ChatMsgSkill))

Example logs where a bunch of events are triggered, but callbacks are then only run once (on the last invokation).

image

commented

Hey @submarines-and Instead of building a custom debounce function you could try Questie:RegisterBucketEvent("CHAT_MSG_SKILL", 1, _EventHandler.ChatMsgSkill). I am currently not at home, but maybe that will help as well.

That will save all events for X seconds (1 second in the example above) and once that time is over actually call the callback.

commented

Oh that was much easier, I can also see that one being used for some events. I will swap all my RegisterEvent for RegisterBucketEvent and give it a whirl.

image

Have to go to work now, but will report back later!

commented

Added a little delay for QuestieAuto using in the latest commit in wotlk-support branch.

commented

The way I see it, we can either work around Blizzard's new rate limit one of two ways - either forcefully rate limit ourselves, like with @submarines-and 's work above, or we can slow down Questie's execution to ensure it never has a chance to reach Blizzard's unknown threshold.

The first approach is the more 'ideal' one, but it is also difficult to implement, as you'd need to figure out exactly which parts of the code need to be rate limited. In the above examples, only the skillup trigger is limited, but there are many other ways currently to cause the disconnects.

Disabling the Comms module, while doing so helps with the seemingly random disconnects, does not prevent the quest accept/completion disconnects, nor does it prevent the skillup disconnects. Looking into everything, I think I've found that what ties it all together is the QuestieQuest:CalculateAndDrawAvailableQuestsIterative function (inside Modules\Quest\QuestieQuest.lua). The majority of this function consists of a loop that iterates through each quest and determines if it should be shown on the map/minimap, depending on user config. If I'm reading this code right, it seems the core loop iterates through every 10ms. This function is executed whenever Questie determines that certain gameplay variables have changed, and that the valid available quests need to be re-determined. This happens with skill-ups, this happens with loot collection, this happens with level-ups, this happens with rep increases, you name it. What led me here was the fact that #4042 mentioned disabling a block of code that contained pretty much nothing except a call to this function.

So, as a test, I increased the timer's tickrate from 10ms to 100ms; specifically, line 1272:

-    timer = C_Timer.NewTicker(0.01, function()
+    timer = C_Timer.NewTicker(0.1, function()

Crazy as it sounds, I quested constantly tonight for nearly 7 hours, spanning a full 10 level range, and did not have a single disconnect. This was without any of the other changes - the skillup function is unmodified, and I kept the Comms module loaded.

Obviously, an increase of this magnitude has side effects; upon initial load, the map takes nearly 20 seconds to fully populate with all of the available quests. However, it's cached from that point on, and it's a small price to pay for otherwise flawless stability. I was even able to turn on autocomplete/autoaccept and used it on NPCs to obtain up to 5 quests at once with no issues. It seems it's not the complete/accept actions flooding the server, it's the map marker processing between each separate complete/accept.

I don't know what the right value here is - we could try experimenting with lowering it further until we start running into issues again - but at the very least, the leap from 10ms to 100ms does ensure stability.

And just to confirm - yes, reverting this change and re-attempting these tests caused immediate disconnects again.

commented

The strange thing though is that most of what happens in that function is run locally, the one thing i can find that runs a lot is getting the current playerlevel, i'll see if i can improve that

commented

@Yttrium-tYcLief
I pushed a few caching changes to wotlk-support branch, would be awesome if you can test it because i don't really get disconnected!

commented

Hey good work, just been testing with a clean install, don't know if it were me that were to quick, after it had finished loading all the steps, I went into the settings and started changing, and I got a DC. Then I logged in again and waited a little bit more after it had loaded everything again, this time no DC, after that I trained weaponskill up and tried lvling first aid as a fast skill up and noticed this messeage for every/everyother skill up, is that some of the new or just in this beta?
image
image

commented

Regarding the develop message: known issue with the beta, it's already fixed for the future. Just ignore it for testing.

That DC is definitely interesting, can you reproduce it?

commented

So far no luck, have deleted catche folder, all saved variables for questie and deleted questie and installed the latest beta again.
then tried on 3 different chars, where after the addons says load completed, went into the settings and started flicking on and off those settings I did when the first DC came.

commented

This issue is very old and was definitely fixed with a bunch of bugfixes around the time of Wrath release.