This is a design value in Erlang - fail the process, let the supervisor restart it, rather than handling a lot of specific edge case failures. I haven't done much Erlang programming for a while (~decade), but it was one of the things I really appreciated about it.