emit error events instead to throw