[fix] exit cleaner than just throwing an error