# AAX plugins are silently broken

**URL:** <https://forum.juce.com/t/aax-plugins-are-silently-broken/56770>\
**Category:** General JUCE discussion\
**Created:** [June 22, 2023, 9:01pm UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770 "2023-06-22T21:01:53Z")\
**Posts on this page:** 8\
**Page:** 1

<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:** [June 22, 2023, 9:01pm UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770/1 "2023-06-22T21:01:53Z")

</div>

In the latest juce breaking changes:

```auto
Change
------
AudioProcessor::getAAXPluginIDForMainBusConfig() has been deprecated.

Possible Issues
---------------
Any AudioProcessor overriding this method will fail to compile.

```

`getAAXPluginIDForMainBusConfig` has been made private. However, that doesn’t cause plugins to not compile. **A private virtual function can be overridden by derived classes** , but can only be called from within the base class. Instead the return type should be changed, since a virtual function can not differ by return type only.

---

<div class="post-metadata">

**Author:** ![ttg](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/ttg/32/14456_2.png) [@ttg](https://forum.juce.com/u/ttg)\
**Post date:** [June 27, 2023, 6:37am UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770/2 "2023-06-27T06:37:14Z")

</div>

I did notice this commit on the develop branch so I was aware of it.  
But thinking of it more,  
A nicer thing would be to deprecate it first or at least resulting a compile error.

---

<div class="post-metadata">

**Author:** ![yfede](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/yfede/32/506_2.png) [@yfede](https://forum.juce.com/u/yfede)\
**Post date:** [June 27, 2023, 7:46am UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770/3 "2023-06-27T07:46:26Z")

</div>

Not causing a compilation error may have been acceptable if that function, overridden in the derived classes, were still called for backwards compatibility.  
Maybe that was the intention of the JUCE team? But I can confirm that with the new implementation that function is never called, silently resulting in the plug-ins to revert to the default identifiers.

---

<div class="post-metadata">

**Author:** ![anthony-nicholls](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/anthony-nicholls/32/1246_2.png) [@anthony-nicholls](https://forum.juce.com/u/anthony-nicholls)\
**Post date:** [June 27, 2023, 10:03am UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770/4 "2023-06-27T10:03:19Z")

</div>

Good catch @RolandMR I think this ones on me, I think I wanted a compilation error to force the change. Clearly didn’t test that though! I’ll take a look now.

---

<div class="post-metadata">

**Author:** ![anthony-nicholls](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/anthony-nicholls/32/1246_2.png) [@anthony-nicholls](https://forum.juce.com/u/anthony-nicholls)\
**Post date:** [June 28, 2023, 2:02pm UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770/5 "2023-06-28T14:02:31Z")

</div>

I’ve pushed a change - I’ve settled for just removing the function entirely unfortunately I couldn’t get a much more helpful error message so I think people will have to just rely on the breaking changes document for this one.

> <https://github.com/juce-framework/JUCE/commit/04a89007b77be2eaaac0db44bed1e5250a124307>

---

<div class="post-metadata">

**Author:** ![EikeJ](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/eikej/32/17931_2.png) [@EikeJ](https://forum.juce.com/u/EikeJ)\
**Post date:** [February 20, 2024, 2:56pm UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770/6 "2024-02-20T14:56:17Z")

</div>

So, dumb question: how can I now set my id’s (which I need to do for backwards compatibility)?  
Also, was there a reason to hide/remove this call, other the ID not being enforced to be unique (which is not necessarily a problem)?

---

<div class="post-metadata">

**Author:** ![anthony-nicholls](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/anthony-nicholls/32/1246_2.png) [@anthony-nicholls](https://forum.juce.com/u/anthony-nicholls)\
**Post date:** [February 20, 2024, 3:03pm UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770/7 "2024-02-20T15:03:31Z")

</div>

@EikeJ if you take a look at the [breaking changes document](https://github.com/juce-framework/JUCE/blob/master/BREAKING_CHANGES.md#change-16) it says…

> **Workaround**
> 
> - Create an object which inherits from AAXClientExtensions.
> - In the object override and implement getPluginIDForMainBusConfig().
> - In the AudioProcessor override getAAXClientExtensions() and return a pointer to the object.

---

<div class="post-metadata">

**Author:** ![EikeJ](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/eikej/32/17931_2.png) [@EikeJ](https://forum.juce.com/u/EikeJ)\
**Post date:** [February 20, 2024, 3:48pm UTC](https://forum.juce.com/t/aax-plugins-are-silently-broken/56770/8 "2024-02-20T15:48:41Z")

</div>

Thx! This gives the rationale as well.
