I tried adding event.noExecution() after renderData in the preHandler but it still executes the preHandler and the index event resulting in the index renderData being shown.
When I comment out the index renderData the preHandler renderData is shown so it’s running just not stopping the event from continuing to the index event.
I’m still not sure how to stop the index event from happening in the preHandler.
Yes, override to another event worked but that’s not what I wanted. I wanted the renderData function to execute to return the failure reason and then stop the event from processing.
I ended up using an interceptor preProcess function and it works as I intended it to.