failures

Of those, how many ended in the callback throwing. A swallowed throw leaves the patched method intact and the fire counted, so a wholly broken handler reads exactly like a working one until this is read — it is what separates "never fired" from "fired and blew up every time".