Bypass not working as expected in AU format only

I have an effect plugin that is using a parameter to control whether it is bypassed or not. This is working in VST3 and AAX but not AU.
I’m currently on JUCE 5.4.7 and holding off moving to JUCE 6 as I’m close to a release and other than this bug it’s all tested.

I’ve overridden the AudioProcessor::getBypassParameter() method to return the parameter in question.

In VST3 and AAX, setting the param results in the AudioProcessor::processBlockBypassed() route being called just fine. In AU for some reason this path is not called.

Having a look in juce_AU_Wrapper.mm, isBypassed is false, what is not immediately clear to me is why it’s not being set to true. The wrapper is listening to the correct parameter and parameterValueChanged is being called when the parameter updates (e.g. via a click in my UI).

However the case kAudioUnitProperty_BypassEffect: in SetProperty() which is where isBypassed can be set to true is never being followed.

Any thoughts on what I’ve missed?

Thanks for any pointers,
Dave

Should anyone else stuble upon this issue, I’m using a belt and braces solution of checking my bypass param at the top of the processBlock method and calling processBlockBypassed.
However that does feel like I’m duplicating code that is in the AU wrapper.