It does (again using the debug project with a small timer update value), although now I feel I missed something obvious everyone knows :). Here it is anyway:
When the processFifo() method in juce_Convolution.cpp calls requestsType.setUnchecked (numRequests, type) in its while loop with numRequests = 256, it fires the jassert (isPositiveAndBelow (indexToChange, values.size())); in juce_Array.h (l.524). Juce version 5.4.1.
Ok I think Iāve found the issue. At line 490, it should be while (getNumRemainingEntries() > 0 && numRequests < fifoSize) instead of while (getNumRemainingEntries() > 0).
I submitted a Pull Request to expose the IR switch ramp duration. I find it convenient for VST users to define a plugin āImpulse Response update rateā to fit their current needs (zipper noise free, highly responsive, etc.). Let me know if it doesnāt make sense with what you had in mind for the Convolution class implementation.