use the new fail with errno