Dialyzer warning from hell: no_return when calling erl_tar.create

That’s how types work everywhere. Type checkers complain if you pass something not meant to be handled, not if you pass something not able to be handled. Otherwise you couldn’t do anything like an match wildcard or an else statement of an if, because they might handle more cases than the explicitly expected ones.