use custom exception for user creation failure