# \[JUCE 8.0.9\] VST3 can no longer load in JUCE hosts

**URL:** <https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063>\
**Category:** Audio Plugins\
**Created:** [September 5, 2025, 10:13am UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063 "2025-09-05T10:13:13Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![mgrand](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/mgrand/32/14447_2.png) [@mgrand](https://forum.juce.com/u/mgrand)\
**Post date:** [September 5, 2025, 10:13am UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/1 "2025-09-05T10:13:13Z")

</div>

Hello,

I updated from JUCE 8.0.8 to 8.0.9, and now my VST3 plug-in can no longer load in Pluginval or AudioPluginHost.

The problem seems to be a mismatch of IDs in the VST3 wrapper `findClassMatchingDescription`.

My guess is that the new VST3 helper in 8.0.9 doesn’t fill the `moduleinfo.json` file correctly, because if I delete the file, the plug-in loads perfectly.

Also, setting `JUCE_VST3_CAN_REPLACE_VST2=1` seems to fix the issue. But I don’t think I can change that afterwards without breaking existing sessions, right?

Is this a bug in 8.0.9 or am I missing something?

Thanks

---

<div class="post-metadata">

**Author:** ![zsliu98](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/zsliu98/32/22502_2.png) [@zsliu98](https://forum.juce.com/u/zsliu98)\
**Post date:** [September 5, 2025, 3:23pm UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/2 "2025-09-05T15:23:37Z")

</div>

> [@mgrand](#):
>
> JUCE\_VST3\_CAN\_REPLACE\_VST2=1

On my local computer and GitHub runners pluginval loads VST3 correctly (with JUCE 8.0.9 and`JUCE_VST3_CAN_REPLACE_VST2=0`).

IIRC, the VST3 moduleinfo has been changed a bit in the 8.0.9. Not sure why yours gets affected.

---

<div class="post-metadata">

**Author:** ![djb-2](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@djb-2](https://forum.juce.com/u/djb-2)\
**Post date:** [September 5, 2025, 10:15pm UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/3 "2025-09-05T22:15:54Z")

</div>

I was just about to create a BR on this and then saw your message. We see the same issue too. When JUCE\_VST3\_CAN\_REPLACE\_VST2 is set to “Default (Enabled)” or to “Enabled” in the Projucer, the VST3 ID that is generated in the moduleinfo.json is _different_.

Moreover: when using '“Enabled” explicitly, the moduleinfo.json file validates perfectly fine using the VST3 SDK moduleinfotool, while when set to “Default (Enabled”), the ID is different and the plugin no longer validates. I was expecting the exact same result whether the Projucer setting is either explicitly set to “Enabled” or “Default (Enabled)” but it doesn’t appear to be the case.

The consequence we see is that VST3 plugins with the wrong ID no longer load in certain hosts, which isn’t limited to the JUCE hosts but also affects loading of the plugin in 3rd party hosts.

---

<div class="post-metadata">

**Author:** ![djb-2](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@djb-2](https://forum.juce.com/u/djb-2)\
**Post date:** [September 5, 2025, 11:14pm UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/4 "2025-09-05T23:14:49Z")

</div>

Second change I had to make to get the ID that is in he moduleinfo.json file to be validated is to set ‘Use Global AppConfig Header’ to ‘Disabled’ (while the default behavior is ‘Enabled’).

---

<div class="post-metadata">

**Author:** ![RolandMR](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rolandmr/32/641_2.png) [@RolandMR](https://forum.juce.com/u/RolandMR)\
**Post date:** [September 7, 2025, 4:17pm UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/5 "2025-09-07T16:17:06Z")

</div>

Here is a diff of my `moduleinfo.json` between juce 8.0.8 and juce 8.0.9. The 8.0.8 version will load in Waveform, the 8.0.9 version will not.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/juce/original/3X/b/e/be8f0590b33207765f47236bdf9bb0ceaab407f5.jpeg)

---

<div class="post-metadata">

**Author:** ![reuk](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/reuk/32/21494_2.png) [@reuk](https://forum.juce.com/u/reuk)\
**Post date:** [September 7, 2025, 4:46pm UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/6 "2025-09-07T16:46:40Z")

</div>

> [@RolandMR](#):
>
> The 8.0.8 version will load in Waveform, the 8.0.9 version will not

Does the 8.0.9 version fail to load completely, or does it work if you force a rescan of the plugin?

---

<div class="post-metadata">

**Author:** ![RolandMR](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rolandmr/32/641_2.png) [@RolandMR](https://forum.juce.com/u/RolandMR)\
**Post date:** [September 7, 2025, 5:05pm UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/7 "2025-09-07T17:05:15Z")

</div>

Fails to load completely. Rescan doesn’t help. Also fails to load FL Studio, loads in Reaper and Live.

`findClassMatchingDescription` fails to find anything matching the `PluginDescription`

---

<div class="post-metadata">

**Author:** ![djb-2](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@djb-2](https://forum.juce.com/u/djb-2)\
**Post date:** [September 7, 2025, 7:58pm UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/8 "2025-09-07T19:58:19Z")

</div>

@reuk I managed to reproduce the VST3 moduleinfo.json problem containing an erroenous ID with the JUCE “Hello World’ demo plugin using the Projucer as workflow, on both Windows as well as macOS. If I build the demo plugin with JUCE 8.0.9, the ID in the manifest file doesn’t get validated by the VST3 SDK moduleinfotool, unless I make the aforementioned changes in the Projucer, which will change the ID:

- ‘Use Global AppConfig Header’ to ‘Disabled’
- ‘JUCE\_VST3\_CAN\_REPLACE\_VST2’ to ‘Enabled’ instead of ‘Default (enabled)’

---

<div class="post-metadata">

**Author:** ![reuk](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/reuk/32/21494_2.png) [@reuk](https://forum.juce.com/u/reuk)\
**Post date:** [September 9, 2025, 3:18pm UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/9 "2025-09-09T15:18:26Z")

</div>

Thanks for reporting, that should be fixed here:

> <https://github.com/juce-framework/JUCE/commit/17df2b803775c9d770df8c6b22db2c3f4e6d8a4f>

---

<div class="post-metadata">

**Author:** ![djb-2](https://avatars.discourse-cdn.com/v4/letter/d/73ab20/32.png) [@djb-2](https://forum.juce.com/u/djb-2)\
**Post date:** [September 10, 2025, 1:07am UTC](https://forum.juce.com/t/juce-8-0-9-vst3-can-no-longer-load-in-juce-hosts/67063/10 "2025-09-10T01:07:29Z")

</div>

that seems to have fixed it!
