[Bug] ElvUI core crashes WoW 2.4.3 when ctrl-clicking helmets/shoulders twice in OpenGL mode (Yes, confirmed...)
This may sound like an impossible bug. "How can ElvUI CRASH WOW!?". But it is 100% true!
Setup:
- Wine (Wineskin) on macOS High Sierra. Probably affects Wine on Linux too. And may even affect WoW.exe running plainly on Windows too!
- WoW 2.4.3 from Warmane's data-download torrent.
- Config changes in WTF\Config.wtf (most likely irrelevant):
SET gxApi "opengl"andSET gxTripleBuffer "1". - AddOns Enabled:
!Compatibility,!DebugTools,ElvUI,ElvUI Config.
Steps to reproduce:
- Ctrl-click on helmets (For some reason it has to be helmets...). It doesn't crash WoW every time, but about 30% of the times. And I don't know if it has to be specific helmets for the crash, but as you see I did it on
Zorbin's Water Resistant Hatin the screenshot below, showing such a crash. - WoW will display a "access violation" trying to read memory at
0x00000000. That's a null pointer, meaning a pointer that is supposed to point at data but isn't pointing at anything. That's the worst kind of bug a C++ program can get, because it means an instant crash.
Steps to NOT reproduce:
- Disable ElvUI. And then ctrl-clicking works perfectly... with no crashes.
- I made sure this isn't some "addon memory limit" issue. So I enabled about 50 other addons (EXCEPT ElvUI) and used TONS of addon memory, but still no crashes!
- As soon as I re-enable ElvUI, ctrl-clicking on helmets crashes WoW!
Here is a screenshot:

I really wish I could help track this down since I am a programmer and I am seeing this issue on my system, but I don't know where to begin to look... I don't know ElvUI's codebase.
Okay! After a ton of crashes, I've finally discovered what's causing it, and found a reliable way to reproduce it 100% of the time:
- Dressing Room window MUST already be open. (So, ctrl-click on ANY item to open it!)
- Next, while the Dressing Room is already open, you simply ctrl-click on ANY SHOULDER or HEAD item (the shoulder/head item you ctrl-click on must be in inventory, a chat-textlink, or a loot-addon such as AtlasLoot). The game will now crash with a 0x00000000 null pointer error!
I tried different addon combos:
- All addons disabled: Fine! Can ctrl-click heads/shoulder items 100s of times. No crash!
- A lot of addons (about 100 mb addon memory used) enabled (but no ElvUI!): Fine! As above.
- Only
!Compatibilityand!DebugToolsenabled: Fine! As above. - As soon as
ElvUI(the core addon) is enabled (Compat+Debug+ElvUI enabled, nothing else needed): This crash will happen!
So it is probably something about how ElvUI hooks into/takes over the Dressing Room window!
I can take a look at the code if you can guide me about what potential places to look in.
So far I've tested 1 thing:
-
AddOns/ElvUI/modules/skins/blizzard/load_blizzard.xml, I removed the line that loads "dressingroom.lua". This means the dressing frame is not re-skinned. - When I opened the game, the dressing frame looks plain, but ctrl-clicking twice still kills the game. So the crash-causing Lua code is not in that file. It's somewhere else in ElvUI.
I can't replicate this on Windows 10 with ElvUI 1.45.
Unsure of where I got the client from, but I am fairly certain it wasn't Warmane.
@Saben65 Thanks for confirming that it does not happen when WoW runs natively on Windows.
And I decided to check if the client version had anything to do with it.
So I checked:
- Warmane: Version 2.4.3.8606, enGB
- Excalibur: Version 2.4.3.8606, enUS
Both crash exactly the same way. Here's the Excalibur enUS client, with ElvUI+ElvUIConfig+Compatibility+DevTools, no other addons:

Interestingly, the illegal instruction happens at the exact same memory address, 0xA7589132, in both the enGB and enUS clients. If I knew anything about patching assembly code, I'd love to add a null-pointer check there and possibly fix the Wow.exe client...
I also tried with removing SET gxApi "opengl" from Config.wtf, to ensure the game uses the Direct3D API instead. Guess what? It doesn't crash. So the crash is related to the OpenGL rendering mode.
But remember: There are no game-crashes in OpenGL mode if ElvUI is disabled. Only when ElvUI is enabled.
Here's the thing: In Direct3D mode, Wine has to translate all D3D calls to OpenGL. If you instead tell the game to use the OpenGL renderer, you get 2-3x higher FPS, and no more constant stuttering (which happens while D3D shaders are being rewritten as OpenGL by Wine). Which matters a lot. It's impossible to raid in Direct3D mode, due to the terrible performance.
So even though we now know that OpenGL mode + Wine is what's causing SOME ElvUI feature (it could be anything) to crash the game, I'll be staying in OpenGL mode. I simply avoid ctrl-clicking on any equipment while the Dressing Room is open, since that's what causes the crash.
It's not a matter of being stubborn. The game performance is unplayable in Direct3D mode. ;-)
One more question: Does Windows also crash when WoW is in OpenGL Mode?
@Saben65, please go into your WTF folder and edit Config.wtf and add this line:
SET gxApi "opengl"
Now try ctrl-clicking a helmet (or shoulder) item twice in the game, so that your 2nd click happens while the Dressing Room frame is already open. Let's see what happens!
Having the same issue running the game with opengl on linux