raising error instead of logging it so it can be handled by the requestor