In case of an error it is not clear what the state of the world is, so it seems safer to fire the event and let the client clean itself up.