async def METHOD_NAME(self, mp_request: Union[MPRequest, MaintenanceRequest]) -> Any:
    try:
        if issubclass(type(mp_request), (MPRequest,)):
            return await self.process_mp_request(cast(MPRequest, mp_request))
        elif issubclass(type(mp_request), (MaintenanceRequest,)):
            return self.process_maintenance_request(cast(MaintenanceRequest, mp_request))
        LOG.error(f"Failed to process mp_request, unknown type: {type(mp_request)}")
    except BaseException as exc:
        with logging_context(req_id=mp_request.req_id):
            LOG.error(f"Failed to process maintenance request: {mp_request.command}.", exc_info=exc)
            return MPResult("Request failed")
    return MPResult("Unexpected problem")