According to Scrapy documentation,
If it returns a Request object [what would occur if you were running RetryMiddleware], Scrapy will stop calling process_request() methods and reschedule the returned request. Once the newly returned request is performed, the appropriate middleware chain will be called on the downloaded response.