Skip to content

PluginHost2 loads wrong Waves VST3 from WaveShell and can crash when replacing/removing affected node #57

Description

@Tyr808

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions