Ensure ready and error events are fired properly even if they have already fired