From diagnosing and troubleshooting, the behavior appears to match a recently fixed JUCE WaveShell hosting issue: https://forum.juce.com/t/vst3-host-can-load-the-wrong-plugin-from-waveshell-class-index-goes-stale-after-sethostcontext/69393
Environment
OBS Studio 32.2.1 64-bit
Windows 11 25H2, build 26200.9168
AMD Ryzen 7 5800X
atkAudio Plugin: 0.34.4
Waves Ultimate 17 / WaveShell1-VST3 17.1
Issue
PluginHost2 is intermittently instantiating the wrong Waves VST3 plugin when restoring/loading a filtergraph.
My saved filtergraph explicitly contains:
Plugin: StudioVerse Audio Effects Mono
Manufacturer: Waves
Version: 17.1.42.51
VST3 file: C:\Program Files\Common Files\VST3\WaveShell1-VST3 17.1_x64.vst3
uniqueId: 3637ff16
VST3 uid: a02aa3cf
However, loading that same graph has produced unrelated Waves plugins in the same node, including:
Spherix Limiter 7.1.2
Abbey Road Reel ADT Live Mono/Stereo
In another saved state, a node serialized as Brauer Motion Stereo appeared as Abbey Road Reel ADT Live Mono/Stereo.
Reproduction
Add a fresh PluginHost2 filter.
Load the attached filtergraph containing StudioVerse Audio Effects Mono.
The graph topology loads correctly, but the StudioVerse VST3 node may instead instantiate an unrelated Waves plugin such as Spherix.
Removing the PluginHost2 filter entirely clears the graph without issue.
Reloading the same unmodified filtergraph into the fresh PluginHost2 instance reproduces the wrong-plugin substitution.
The filtergraph itself was checked after a crash and was unchanged. The copy that subsequently loaded Spherix is byte-for-byte identical to the clean copy and contains no reference to Spherix. Its SHA-256 is:
4048f3ac32de626de1c37ce1e5bb25ca1482a553ef426bb8f18a621e565c520f
Related crash
There also appears to be a second issue when one of these incorrectly instantiated nodes exists.
I can reproducibly crash OBS by removing the affected node in PluginHost2. Loading another graph while the affected graph is active can also crash, presumably while the old graph is being cleared.
The crash is:
Unhandled exception: c0000005
The crashed main/UI thread contains a long sequence of calls inside atkaudio-pluginforobs.dll immediately before the access violation. OBS's normal audio thread is not the crashing thread.
I can provide multiple crash logs; all show the same general atkAudio/UI-thread signature.
Crash 2026-09-06 11-20-45.zip
Attached is my crashlog as well as my filtergraph config, archived as a zip
From diagnosing and troubleshooting, the behavior appears to match a recently fixed JUCE WaveShell hosting issue: https://forum.juce.com/t/vst3-host-can-load-the-wrong-plugin-from-waveshell-class-index-goes-stale-after-sethostcontext/69393
Environment
OBS Studio 32.2.1 64-bit
Windows 11 25H2, build 26200.9168
AMD Ryzen 7 5800X
atkAudio Plugin: 0.34.4
Waves Ultimate 17 / WaveShell1-VST3 17.1
Issue
PluginHost2 is intermittently instantiating the wrong Waves VST3 plugin when restoring/loading a filtergraph.
My saved filtergraph explicitly contains:
Plugin: StudioVerse Audio Effects Mono
Manufacturer: Waves
Version: 17.1.42.51
VST3 file: C:\Program Files\Common Files\VST3\WaveShell1-VST3 17.1_x64.vst3
uniqueId: 3637ff16
VST3 uid: a02aa3cf
However, loading that same graph has produced unrelated Waves plugins in the same node, including:
Spherix Limiter 7.1.2
Abbey Road Reel ADT Live Mono/Stereo
In another saved state, a node serialized as Brauer Motion Stereo appeared as Abbey Road Reel ADT Live Mono/Stereo.
Reproduction
Add a fresh PluginHost2 filter.
Load the attached filtergraph containing StudioVerse Audio Effects Mono.
The graph topology loads correctly, but the StudioVerse VST3 node may instead instantiate an unrelated Waves plugin such as Spherix.
Removing the PluginHost2 filter entirely clears the graph without issue.
Reloading the same unmodified filtergraph into the fresh PluginHost2 instance reproduces the wrong-plugin substitution.
The filtergraph itself was checked after a crash and was unchanged. The copy that subsequently loaded Spherix is byte-for-byte identical to the clean copy and contains no reference to Spherix. Its SHA-256 is:
4048f3ac32de626de1c37ce1e5bb25ca1482a553ef426bb8f18a621e565c520f
Related crash
There also appears to be a second issue when one of these incorrectly instantiated nodes exists.
I can reproducibly crash OBS by removing the affected node in PluginHost2. Loading another graph while the affected graph is active can also crash, presumably while the old graph is being cleared.
The crash is:
Unhandled exception: c0000005
The crashed main/UI thread contains a long sequence of calls inside atkaudio-pluginforobs.dll immediately before the access violation. OBS's normal audio thread is not the crashing thread.
I can provide multiple crash logs; all show the same general atkAudio/UI-thread signature.
Crash 2026-09-06 11-20-45.zip
Attached is my crashlog as well as my filtergraph config, archived as a zip