improved error handling

in fixing the one I missed, I noticed that it's procedure in this codebase to emit asynchronously.