croak on error