Implementation of RequestRejected soed not pass "self" to the exception initialization, thus leading to an error on construction.
I think it would be good to refactor the errors so that they are using super().__init__(message)-syntax instead of Exception.__init__(message)