Was keen not to change the JUCE version if I didn’t have to - other than this its been super-stable. Might experiment to see what happens…right now i’ve changed it so it just returns safely from processblock if there’s some kind of channel count problem.
I’ve seen this also happening in SONAR, for VST3 plug-ins.
In my case, that happened whenever processing was being started for the first time, or resumed after a pause.
I suspect SONAR uses those 0-samples call as a way to initialize the automated parameters to their intended values when starting/resuming processing, which kinda makes sense in relation to how automation is driven in the VST3 format.
To handle that, I simply skip processing when I receive a buffer of 0 length, because, well… the result of processing an empty buffer would also yield an empty buffer, regardless of what the algorithm is.