Return more descriptive error messages so users can figure out what's going wrong