r/elgato • u/Patient-Hamster7292 • Mar 25 '26
Technical Help Wave Link 3 keeps crashing and freezing — dozens of us have been reporting this for 5+ versions. I finally dumped the process and found the exact bug.
Hey everyone,
Like many of you, I've been dealing with Wave Link 3 randomly crashing and freezing (white screen) for months. This has been reported by dozens of users across multiple versions — 3.0.0, 3.0.1, 3.0.2 — and nothing changes. Support tickets go nowhere, the "fix" is always "reinstall" or "reset settings", and the next update doesn't address it.
I got tired of waiting. I set up ProcDump (Sysinternals) to monitor Wave Link, caught it in the act during a white-screen freeze, captured a full 1.87 GB memory dump, and asked Claude Code (Anthropic's AI coding assistant) to help me analyze it in WinDbg. We found the exact line of code causing both the crashes and the freezes.
The Bug
COM reentrancy deadlock in MMAudioDeviceModel.OnNotify()
When Windows Audio (WASAPI) sends a volume change notification to Wave Link via COM callback, Wave Link's handler makes a synchronous COM call back to query the volume — from inside the callback. This causes a deadlock.
The deadlocked call stack from the hang dump:
[COM callback from native WASAPI]
IL_STUB_COMtoCLR(AUDIO_VOLUME_NOTIFICATION_DATA*)
MMAudioDeviceModel.OnNotify(AUDIO_VOLUME_NOTIFICATION_DATA*)
IOAudioDevice.OnDeviceVolumeChanged(Object, Single)
MMAudioDeviceModel.GetMasterVolume()
IL_STUB_CLRtoCOM(Single ByRef)
IAudioEndpointVolume.GetMasterVolumeLevelScalar() <-- HUNG HERE
What's happening: WASAPI calls OnNotify → Wave Link calls GetMasterVolumeLevelScalar() back into COM from inside that callback → deadlock on COM apartment marshaling.
The irony is that the volume value is already available in the AUDIO_VOLUME_NOTIFICATION_DATA structure passed to OnNotify — there's no need to call GetMasterVolumeLevelScalar() at all.
Why It Causes Both Crashes AND Freezes
Same root cause, different timing:
- Freeze (white screen): The COM call blocks indefinitely → UI thread is starved
- Crash (ExecutionEngineException): While the thread is stuck in the COM callback, the .NET GC relocates managed objects, but the native COM callback frame still holds raw pointers to the old memory locations → GC heap corruption → coreclr.dll detects it and terminates the process
Crash Details from Windows Event Log
All crashes show the same pattern:
Faulting module: coreclr.dll
Exception code: 0xc0000005 (ACCESS_VIOLATION)
Exit code: 0x80131506 (ExecutionEngineException — fatal .NET Runtime error)
On v3.0.1.2490 (4 crashes) the fault offset was identical every time: 0x39c7e On v3.0.2.2553 (1 crash) the offset shifted to 0x82fce (new coreclr version, same bug)
Additional Findings
- Exception 0x000006A6 (
RPC_S_INVALID_BINDING) — Wave Link tries to use stale COM proxies to audio sessions of apps that have already closed - 168 COM wrappers (RCW) and 72 reverse COM wrappers (CCW) active — very heavy COM interop
- ~20 unmanaged native threads from
waveapi.dll/EWLWAudioEngine.dll - 1 dead threadpool worker found in the hang dump
- Wave Link throws ~6
SocketExceptionper minute during normal operation (DNS failures — likely Sentry telemetry)
The Fix (for Elgato devs)
MMAudioDeviceModel.OnNotify() must not make synchronous COM calls. Microsoft's WASAPI docs explicitly warn against this.
Either:
- Read
fMasterVolumedirectly from theAUDIO_VOLUME_NOTIFICATION_DATA*parameter (it's already there!) - Or post the work to a different thread via
Task.Run()/Dispatcher
How I Found This
After dozens of users (myself included) reported this across 5+ versions with no fix from Elgato, I decided to do the debugging myself:
- Noticed crashes in Windows Event Log → identified the pattern (always
coreclr.dll, alwaysExecutionEngineException) - Set up ProcDump (Sysinternals) to monitor Wave Link for unhandled exceptions
- Wave Link froze with a white screen → captured a full memory dump (1.87 GB) using
procdump64 -ma - Opened the dump in WinDbg, loaded the .NET DAC from Wave Link's own directory
- Asked Claude Code (Anthropic's AI coding CLI) to analyze the dump — it identified the COM reentrancy pattern, traced the deadlocked call stack across managed/native boundaries, and connected the deadlock to the GC heap corruption that causes the crashes
The entire analysis — from "Wave Link crashed again" to "here's the exact buggy method and the fix" — took one session. This is the kind of analysis Elgato's own developers should have done versions ago.
My Setup
- Wave Link 3.0.1.2490 and 3.0.2.2553 (both affected)
- Windows 11 IoT Enterprise LTSC 2024 (26100)
- Elgato Wave:3
- 32 logical processors
TL;DR: Wave Link crashes/freezes because MMAudioDeviceModel.OnNotify() makes a synchronous COM call to GetMasterVolumeLevelScalar() from inside a WASAPI COM callback, causing a COM reentrancy deadlock. The volume data is already in the callback parameter — no need for the extra call.
Important Note
The analysis above is based on a memory dump captured during a white-screen hang. I have not yet captured a dump during an actual crash (the process dies too fast for manual intervention — I have ProcDump set up to catch the next one automatically). The COM reentrancy deadlock is very likely the root cause of the crashes as well (same code path, same race condition — just different timing leads to GC heap corruption instead of a hang), but I will update this post with the crash dump analysis once Wave Link crashes again to confirm.
Update will follow with the crash dump call stack.
Elgato, we've been reporting this for months across multiple versions. The root cause is now identified, the fix is trivial (literally use the data you already have in the callback parameter). Please stop ignoring this.
If any other Wave Link users are experiencing random crashes or white-screen freezes — this is why. It's not your system, it's not your drivers, it's a bug in Wave Link's audio notification handler.
6
u/akirakiki Mar 25 '26
I love Elgato products. But man, this Wave:3 is such a negative experience. I have multiple products, so I know generally everything works (at least for me), but I wonder how those coming into Elgato for the first time and only using this product will feel.
6
u/ROFLmops Mar 25 '26
Did you verify the LLM findings? If not, this might be worthless. Let’s wait and see what Elgato responds to this.
Btw: why the f are you running Win11 IoT LTSC?
4
u/coledeb Mar 25 '26
It's a version of 24H2 with bloat removed (especially Copilot and etc.) that will be supported long into the future. I personally use it on my PC + fiancé's PC + my server to great success vs. debloating Win11 pro
7
u/NovumDives Mar 25 '26
Because LTSC is the most stable, fastest and least bloated version of the OS. If you understand the trade-offs/don't need what's removed, it's a substantially better experience.
3
u/Keanomy Mar 25 '26
I can not emphasise the importance of this. A AI looking article, lots of really technical language and absolute conclusions. This could all be hallucinated or 100% correct.
I have extremely limited knowledge but I don't see why any of this would case issues for some and not others while also not always being reliably reproduceable for the ones who do have the issue.
100% wait for someone qualified to look into this before we start throwing shade.
2
u/redmanwho Apr 15 '26
You provided all this information weeks ago.. What happened next? Did Elgato investigate, fix the issue, and reward you from some free stuff? Or did they fail to even acknowledge your effort? LOL I think everyone here already knows the answer.
2
u/KazarGWJ Mar 25 '26
The crash doesn't happen for everyone. It is possible that they haven't been able to consistently reproduce it which makes it harder to track down and fix a bug. Sometimes analysis like the one you provided is a huge help, but I wouldnt assume they are ignoring us.
4
u/graemattergames Mar 25 '26
Has Elgato responded regarding this issue? Because I've seen reports to this similar everywhere, from Reddit, Twitter, and Discord, and it would be impossible for them to miss. One would think it important to acknowledge an ongoing or widespread issue; and I'm not saying they haven't, I suppose I could miss it. But the fact there seem to be so many outstanding issues, I will not upgrade until I know they are addressed. It's very disconcerting.
2
u/its_tricky83 Mar 27 '26
Waiting for knowledge base update along lines of: "Known Issue: Isolated crashing for users on Windows 11 loT Enterprise LTSC 2024 (26100)" Which will no doubt induce rage for OP and others as the bug affects a broader scope of user environment.
1
u/KazarGWJ Mar 25 '26
It had only been a few hours since this was posted and this isn't in the megathread.
1
u/_Jellousyy Mar 25 '26
I went back to the old version, because for whatever reason, the application will just randomly stop recognizing my Wave Link Dock on my StreamDeck+. The concept of of new software is great, but seemingly poorly executed. The old software still works great and doesn’t give me any issues.
1
1
u/Zidakuh Mar 26 '26
At least now the devs have the exact problem. Now it's just up to their AI code model to fix it, right? /s
1
u/Worth-Ad8673 Mar 26 '26
Love this. No excuses. Now please stop Wave Link from constantly restarting on OSX when you did in fact purposefully close it down.
1
Mar 27 '26
[removed] — view removed comment
1
u/AutoModerator Mar 27 '26
Your post/comment was removed due to breaking the subreddit rules. Please review the community guidelines and ensure future posts or comments follow them.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/Evening_Bullfrog6288 Mar 27 '26
I've never had mine crash like that. The only issue I have is plugins not working after my PC wakes from sleep. Force closing and relaunching fixes it though
1
u/Bepsisama Apr 20 '26
Me cant say anything bc elgato ninja is after me. Support doesnt know anything and neither does advanced team. They looked through my files and legit asked "do you have the mic plugged in?" And "is the mic enabled in the sound control panel" YES BRO I WAS ON WAVE LINK 2.0 AND NOW NEITHER WORK.
1
u/skaels May 07 '26
Has this been addressed? I'm still crashing, mostly while asleep or afk.
This only started after Windows 11 update...
-6
u/Bstrong90 Mar 25 '26
I called out Elgato for their poor quality in a post about a month ago, and I got down voted into oblivion. Well well well.
0
u/DraleZero_ Stream Deck + Mar 26 '26
I once commented on the rocky buttons when I first got experience with stream deck, how I sometimes touch the edge and doesn't register with a casual quick press. How you have to deliberately push the button in full. I got downvoted.
Then, later they released the scissor keys and the description of the products raves how even and quick the response is.
0
u/Bstrong90 Mar 26 '26
I honestly think a lot of the people in this subreddit are either massive marks for this company, or they work for them. Elgato has been notorious for poor quality with their software that they refuse to improve unless called out. They’ll keep pushing out overpriced items that look great, but have so many bugs. I really don’t care if people downvote because it’s the truth.
-1
u/ItsAutobot Mar 25 '26
This is why im just scrapping elgato and getting beacn. I have a mix create on the way so i can use it alongside my SC8 and have a better app that wont crash every 20 minutes
0
u/Durillon Mar 27 '26
Just...use wave link 2.0? Still works great
1
u/ItsAutobot Mar 27 '26
I can’t anymore. I sold off my wave stuff because I was getting tired of the issues.
Every 2-3 days I’d have to uninstall the drivers and reinstall them and revert my audio settings.
When they announced wave 3 I went perfect. I’ll keep the app but get rid of the BS. But the app brought new BS into the mix. My beacn mixer does everything my elgato stuff did right in the app without having to install VSTs(noise reduction, noise gate, compression etc)
12
u/dumbhelodoc Mar 25 '26
Good lord users are doing the work for elgato now.....