fix: Handle the case when `error_handler` returns `Request` by Mantisus · Pull Request #1595 · apify/crawlee-python

Now this is repeated 6x times in BasicCrawler in some variants. I would consider creating a utility function for it.

async def some_very_good_name(self, request: Request)->None:
            request_manager = await self.get_request_manager()
            await wait_for(
                lambda: request_manager.mark_request_as_handled(request),
                timeout=self._internal_timeout,
                timeout_message='Marking request as handled timed out after '
                f'{self._internal_timeout.total_seconds()} seconds',
                logger=self._logger,
                max_retries=3,
            )

(no need to worry about request_manager = await self.get_request_manager(), it will resolve to self._request_manager)