better exception handling for invalid approvals