Fail harder on errors

Currently if the client emits an error we log it but just hang around.
The app is in an undefined state at that point so it's hard to say
what exactly will happen, but it's probably not ideal.

At least this way a process monitor can tell that it died and restart
it, ship the logs somewhere, or something.