Interface action failed because of an AddOn

#0 - Oct. 20, 2007, 2:15 a.m.
Blizzard Post
If you get a message "Interface action failed because of an AddOn", this means that an AddOn interfered with the Blizzard UI in some way.

PLEASE CHECK FOR AN UPDATED ADDON, AS YOUR PROBLEM MAY ALREADY BE RESOLVED!

If it still happens, you can diagnose what's going on and let the author know...

To diagnose this, enter the following into chat "/console taintLog 1" and restart the game and try to reproduce it. If you reproduce it, you can quit the game and search through the file Logs\taint.log for the word "blocked". Once you have done this you can turn off logging by entering the following into chat "/console taintLog 0"

Please use this thread to post links to your taint.log file if you get this message. I'll be updating this post with known fixed issues.

Fixed for the next test realm update:
* Blocked actions involving UnitFrameHealthBar_Update() and UnitFrameManaBar_Update()
#3 - Oct. 20, 2007, 5:23 a.m.
Blizzard Post
You'll only get the "blocked" messages in combat, so the easiest way to test this is to go to a low level zone and let a weak creature attack you while you do things involving targeting, group changes, pet changes, etc.

Remember, taint by itself is fine, it only becomes a problem if it results in a "blocked" message.
#8 - Oct. 20, 2007, 3:44 p.m.
Blizzard Post
Q u o t e:
I got this message once on the PTR with no addons installed


Can you post the taint log? We should fix the Blizzard_FeedbackUI so it doesn't block actions. :)

Thanks!
#9 - Oct. 20, 2007, 3:48 p.m.
Blizzard Post
Q u o t e:
Posted for Maldavia:

Taint issues with UIDropDownMenu.

Taint log and steps to reproduce, see:
http://nerdheaven.dk/~the_real/taint.txt


Thanks, I've forwarded this to the engineer. We're aware of the fragility of the UI dropdown menus with regards to tainting, but fixing it involves a major rewrite of the dropdown system, and I don't think we'll have time for that in 2.3. It's definitely on our list though, and we'll keep this info for testing!
#10 - Oct. 20, 2007, 3:49 p.m.
Blizzard Post
Q u o t e:
Should this be stickied?

Edit: This looks informative. Just posting in case you forgot to sticky this :)


I had it stickied, but nobody was looking at it. :)
#14 - Oct. 24, 2007, 3:57 a.m.
Blizzard Post
Sure, I'll add that to my TODO list.
#21 - Oct. 30, 2007, 12:40 a.m.
Blizzard Post
This is fixed for 2.3 release, thanks!

From the engineer:
Moving UpdateMicroButtons to the end of SpellBookFrame_OnShow fixed the problem, as it was tainting SpellBookFrame_Update.
#23 - Oct. 31, 2007, 5:53 p.m.
Blizzard Post
From the engineer:
Using UIDropDownMenu_CreateInfo() should no longer cause taint issues to spread to other dropdowns.
#25 - Nov. 2, 2007, 7:33 a.m.
Blizzard Post
Can you post a link to your taint log?
#33 - Nov. 2, 2007, 9:53 p.m.
Blizzard Post
Yay! :)
#35 - Nov. 6, 2007, 4:02 p.m.
Blizzard Post
While on the test realm, you can just turn on the taint log and leave it on, and after you play a session where you get the message, you can copy the log out and post a link to it.

Once you turn on the taint log with /console taintLog 1, it will stay on across sessions until you turn it off with /console taintLog 0.
#37 - Nov. 7, 2007, 8:58 p.m.
Blizzard Post
Thanks for the log, that was very helpful.
SimpleCombatLog and FuBar_DuabilityFu should no longer block the pet bar in 2.3 release.

This fix actually should take care of all AddOn replacements for frames listed in UIPARENT_MANAGED_FRAME_POSITIONS
#39 - Nov. 9, 2007, 9:34 p.m.
Blizzard Post
Yep, here's the problem:
ActionButton_OnEvent = ActionButton_OnEventWrapper

This needs to use hooksecurefunc()
#42 - Nov. 9, 2007, 11:31 p.m.
Blizzard Post
You're welcome! :)
#51 - Nov. 12, 2007, 6:04 p.m.
Blizzard Post
We're looking into this, BTW.
#60 - Nov. 14, 2007, 11:13 p.m.
Blizzard Post
Q u o t e:
Good old Telos Infobar...say it ain't so!!

11/13 23:21:20.328 Global variable CloseAllWindows tainted by InfoBar - Interface\AddOns\InfoBar\InfoBar.lua:449 InfoBar_OnLoad()
11/13 23:21:20.328 InfoBarFrame:OnLoad()
11/13 23:21:20.328 Execution tainted by InfoBar while reading CloseAllWindows - Interface\FrameXML\UIParent.lua:310 UIParent_OnEvent()
11/13 23:21:20.328 UIParent:OnEvent()
11/13 23:21:20.328 An action was blocked in combat because of taint from InfoBar - UIParent:SetAttribute()
11/13 23:21:20.328 Interface\FrameXML\UIParent.lua:1469 UpdateUIPanelPositions()
11/13 23:21:20.328 Interface\FrameXML\UIParent.lua:1357 CloseWindows()
11/13 23:21:20.328 Interface\FrameXML\UIParent.lua:1383 lOriginalCloseAllWindows()
11/13 23:21:20.328 Interface\AddOns\InfoBar\InfoBar.lua:582 CloseAllWindows()
11/13 23:21:20.328 Interface\FrameXML\UIParent.lua:310 UIParent_OnEvent()
11/13 23:21:20.328 UIParent:OnEvent()
11/13 23:22:29.750 Global variable CloseAllWindows tainted by InfoBar - Interface\AddOns\InfoBar\InfoBar.lua:449 InfoBar_OnLoad()
11/13 23:22:29.750 InfoBarFrame:()
11/13 23:22:29.750 Execution tainted by InfoBar while reading CloseAllWindows - Interface\FrameXML\UIParent.lua:310 UIParent_OnEvent()
11/13 23:22:29.750 UIParent:OnEvent()
11/13 23:22:29.750 An action was blocked in combat because of taint from InfoBar - UIParent:SetAttribute()
11/13 23:22:29.750 Interface\FrameXML\UIParent.lua:1469 UpdateUIPanelPositions()
11/13 23:22:29.750 Interface\FrameXML\UIParent.lua:1357 CloseWindows()
11/13 23:22:29.750 Interface\FrameXML\UIParent.lua:1383 lOriginalCloseAllWindows()
11/13 23:22:29.750 Interface\AddOns\InfoBar\InfoBar.lua:582 CloseAllWindows()
11/13 23:22:29.750 Interface\FrameXML\UIParent.lua:310 UIParent_OnEvent()
11/13 23:22:29.750 UIParent:OnEvent()


From the engineer:
This addon is directly hooking CloseAllWindows, which taints the panel system.
Telo released a version that has his hook issue fixed:
http://forums.worldofwarcraft.com/thread.html?topicId=2968176809
#61 - Nov. 14, 2007, 11:13 p.m.
Blizzard Post
Q u o t e:
Get this with HolyHope mod. Its quite ancient, but I love the circular design and it saves me space by combining greater and lesser blessings. Don't really want to get rid of it.

11/14 00:53:50.630 Execution tainted by HolyHope while reading Cooldown22 - getglobal()
11/14 00:53:50.630 Interface\AddOns\HolyHope\HolyHope.lua:208 HolyHope_OnUpdate()
11/14 00:53:50.630 HolyHopeButton:OnUpdate()
11/14 00:53:50.630 An action was blocked in combat because of taint from HolyHope - HolyHopeRedemptionButton:Hide()
11/14 00:53:50.630 Interface\AddOns\HolyHope\HolyHope.lua:263 HolyHope_OnUpdate()
11/14 00:53:50.630 HolyHopeButton:OnUpdate()

It then repeats this about 100 times in the log. I see no other errors.


From the engineer:
HolyHope is no longer being updated. It’s trying to hide a button that casts a spell during combat, which is not allowed.
#62 - Nov. 14, 2007, 11:14 p.m.
Blizzard Post
Q u o t e:
here my taint.log

11/14 15:12:22.359 An action was blocked in combat because of taint from G15Buttons - objG15_btn_17:Show()
11/14 15:12:22.359 Interface\FrameXML\ActionButton.lua:198 ActionButton_Update()
11/14 15:12:22.359 Interface\FrameXML\ActionButton.lua:324 ActionButton_OnEvent()
11/14 15:12:22.359 Interface\AddOns\G15Buttons\Main.lua:269 onButtonEvent()
11/14 15:12:22.359 objG15_btn_17:OnEvent()
11/14 15:12:27.437 An action was blocked in combat because of taint from G15Buttons - objG15_btn_17:Show()
11/14 15:12:27.437 Interface\FrameXML\ActionButton.lua:198 ActionButton_Update()
11/14 15:12:27.437 Interface\FrameXML\ActionButton.lua:324 ActionButton_OnEvent()
11/14 15:12:27.437 Interface\AddOns\G15Buttons\Main.lua:269 onButtonEvent()
11/14 15:12:27.437 objG15_btn_17:OnEvent()


From the engineer:
G15Buttons is no longer being updated. The user’s mod is directly calling ActionButton_OnEvent which calls ActionButton_Update which attempts to show an action button in this tainted state, causing the error.
This AddOn should be using hooksecurefunc() to hook ActionButton_OnEvent()
#63 - Nov. 14, 2007, 11:15 p.m.
Blizzard Post
By the way, regulars, feel free to jump in and do this kind of analysis if you want. :)
#85 - Nov. 16, 2007, 11:52 p.m.
Blizzard Post
Actually, it does. I need to update those steps.
#121 - Nov. 27, 2007, 1:29 a.m.
Blizzard Post
Could you post a link to the entire taint log?

Thanks!
#124 - Nov. 30, 2007, 12:38 a.m.
Blizzard Post
I believe the world frame is protected and can't be moved in combat. Why is Comix trying to move it?
#129 - Nov. 30, 2007, 11:43 p.m.
Blizzard Post
Taint from UIParent_ManageFramePositions() should largely be gone in 2.3.2, FYI.
#131 - Nov. 30, 2007, 11:49 p.m.
Blizzard Post
No, I'm hoping that most of the frame positioning taint issues will be taken care of in 2.3.2. Based on the taint logs being posted, it looks like this will be the case.

Of course please feel free to play on the Test Realm and let us know of any issues you find!
#143 - Dec. 7, 2007, 11:40 p.m.
Blizzard Post
Q u o t e:
Hi Slouken,

It's annoying that cannot toggle worldmap in combat. Is there any solution?

Once I begins a combat then input /script ToggleWorldMap(), UI always get a taint error that tell me the action was blocked.

here is taint log:

12/7 14:01:46.187 An action was blocked in combat because of taint from MACRO_TAINT - UIParent:Show()
12/7 14:01:46.187 Interface\FrameXML\UIParent.lua:1140 SetUIPanel()
12/7 14:01:46.187 Interface\FrameXML\UIParent.lua:1078
12/7 14:01:46.187 HideUIPanel()
12/7 14:01:46.187 Interface\FrameXML\WorldMapFrame.lua:661 ToggleWorldMap()
12/7 14:01:46.187 TOGGLEWORLDMAP:1
12/7 14:01:46.187 RunBinding()
12/7 14:01:46.187 WorldMapFrame:OnKeyDown()

actually, I have an addon which can show worldmap from script. In case worldmap is shown from my addon, if I get a combat from mob afterward, the whole UIParent will not be shown because UIParent:Hide() aciton has been blocked.

Thanks


This should be fixed for 2.3.2.
#149 - Dec. 12, 2007, 6:55 p.m.
Blizzard Post
Q u o t e:
NOT in comabat and may or may not be related.

with my ArkInventory mod, if you open the bags and then walk, split a stack, click on ok (or press enter) you can't drop the split portion until you stop moving. (no errors are triggered)

the other half of this is if you split a stack first (but dont select an amount) and then start walking, as soon as you click on ok (or press enter) to close the partial stack window and pickup a partial stack, you get the restricted action warning and you cant stop walking until you hit your walk key again

Arkayenro,

This should be fixed for patch 2.4. Thanks for posting your taint log!
#156 - Dec. 19, 2007, 5:08 p.m.
Blizzard Post
Q u o t e:

The Blizzard function CloseMenus is always supposed to be called using securecall(), but there are several cases in the default interface code where it is called without securecall(). As a result, any addon using the UIMenus table will cause an action blocked message when you try to use the toggle interface key while in combat. There may also be other problems caused by this, since there's more than one place this problem is in the code.


Can you verify that this is fixed for 2.3.2 on the test realm?

Thanks!
#159 - Dec. 21, 2007, 12:15 a.m.
Blizzard Post
Q u o t e:

There's still an un-wrapped call in Bindings.xml for the TOGGLEUI binding.


Ah, got it, thanks! This is fixed for 2.3.3.