nit: this error handling could probably refactored into a function that can be used by all the new admin functions.