emit event instead of throwing exception