2026-03-11 19:31:52 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: grabbers) 2026-03-11 19:31:52 [scrapy.utils.log] INFO: Versions: {'lxml': '6.0.2', 'libxml2': '2.14.6', 'cssselect': '1.4.0', 'parsel': '1.11.0', 'w3lib': '2.4.0', 'Twisted': '25.5.0', 'Python': '3.14.3 (main, Feb 4 2026, 14:18:08) [GCC 11.4.0]', 'pyOpenSSL': '25.3.0 (OpenSSL 3.5.5 27 Jan 2026)', 'cryptography': '46.0.5', 'Platform': 'Linux-6.12.66-88.122.amzn2023.x86_64-x86_64-with-glibc2.35'} 2026-03-11 19:31:52 [scrapy.addons] INFO: Enabled addons: [] 2026-03-11 19:31:53 [py.warnings] WARNING: /layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/extensions/feedexport.py:436: ScrapyDeprecationWarning: The `FEED_URI` and `FEED_FORMAT` settings have been deprecated in favor of the `FEEDS` setting. Please see the `FEEDS` setting docs for more details exporter = cls(crawler) 2026-03-11 19:31:53 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.logcount.LogCount', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats', 'grabbers.extensions.custom_fields.ExportCustomFieldsExtension', 'grabbers.extensions.kol_roles.ExportKolRolesExtension', 'grabbers.extensions.exporters.DefaultScrapedItemsExporter'] 2026-03-11 19:31:53 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'grabbers', 'FEED_EXPORT_FIELDS': ['External Id', 'Parent External Id', 'Name', 'Plain text: Parent Name', 'Start date', 'Start time', 'End date', 'End time', 'Location', 'Plain text: Event Link', 'Plain text: Event Link (Excel)', 'Plain text: Poster number', 'Plain text: Description', 'Plain text: Speakers', 'Plain text: Attendees', 'Filter: Of Interest To', 'Filter: Continuing Medical Education', 'Filter: Format', 'Filter: Session Type', 'Filter: Translation', 'Filter: Session Topics', 'Filter: Therapeutic Track', 'Filter: ExpoFP'], 'FEED_FORMAT': 'xlsx', 'LOG_FILE': '/etc/scrapyd/dbs/logs/grabbers/AUA 2025 ' '(Events)/f1efe4581d8011f1a1453a84db9f62c8.log', 'LOG_LEVEL': 'INFO', 'NEWSPIDER_MODULE': 'grabbers.spiders', 'SPIDER_MODULES': ['grabbers.spiders'], 'TELNETCONSOLE_ENABLED': False, 'USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:131.0) Gecko/20100101 ' 'Firefox/131.0'} 2026-03-11 19:31:53 [scrapy_fake_useragent.middleware] INFO: Using '' as the User-Agent provider 2026-03-11 19:31:53 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'grabbers.middlewares.RandomUserAgentMiddleware', 'grabbers.middlewares.RetryUserAgentMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2026-03-11 19:31:53 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.start.StartSpiderMiddleware', 'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 2026-03-11 19:31:54 [scrapy.middleware] INFO: Enabled item pipelines: ['grabbers.pipelines.CleanTextPipeline', 'grabbers.pipelines.DateTimeFormatPipeline', 'grabbers.pipelines.BoolFormatPipeline', 'grabbers.pipelines.ValidateEventNamePipeline', 'grabbers.pipelines.CountryCodePipeline', 'grabbers.pipelines.HyperlinkedEventLinkPipeline', 'grabbers.pipelines.ElasticSearchPipeline'] 2026-03-11 19:31:54 [scrapy.core.engine] INFO: Spider opened 2026-03-11 19:31:54 [elastic_transport.transport] INFO: HEAD https://elasticsearch-es-http.elasticsearch.svc:9200/congress-events [status:200 duration:0.126s] 2026-03-11 19:31:54 [AUA 2025 (Events)] INFO: Start reindexing existing events to historical index. 2026-03-11 19:31:54 [elastic_transport.transport] INFO: PUT https://elasticsearch-es-http.elasticsearch.svc:9200/congress-events/_settings [status:200 duration:0.042s] 2026-03-11 19:31:54 [elastic_transport.transport] INFO: DELETE https://elasticsearch-es-http.elasticsearch.svc:9200/congress-events-historical?ignore_unavailable=true [status:200 duration:0.035s] 2026-03-11 19:31:54 [elastic_transport.transport] INFO: PUT https://elasticsearch-es-http.elasticsearch.svc:9200/congress-events/_clone/congress-events-historical [status:200 duration:0.253s] 2026-03-11 19:31:55 [elastic_transport.transport] INFO: PUT https://elasticsearch-es-http.elasticsearch.svc:9200/congress-events/_settings [status:200 duration:0.037s] 2026-03-11 19:31:55 [elastic_transport.transport] INFO: PUT https://elasticsearch-es-http.elasticsearch.svc:9200/congress-events-historical/_settings [status:200 duration:0.037s] 2026-03-11 19:32:05 [elastic_transport.transport] INFO: POST https://elasticsearch-es-http.elasticsearch.svc:9200/_reindex?wait_for_completion=true [status:N/A duration:10.009s] 2026-03-11 19:32:05 [elastic_transport.node_pool] WARNING: Node has failed for 1 times in a row, putting on 1 second timeout 2026-03-11 19:32:05 [AUA 2025 (Events)] ERROR: ElasticSearch client initialization failed. Make sure ElasticSearch is running and connection settings are correct. Traceback (most recent call last): File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/urllib3/connectionpool.py", line 534, in _make_request response = conn.getresponse() File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/urllib3/connection.py", line 571, in getresponse httplib_response = super().getresponse() File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/sentry_sdk/integrations/stdlib.py", line 146, in getresponse rv = real_getresponse(self, *args, **kwargs) File "/layers/paketo-buildpacks_cpython/cpython/lib/python3.14/http/client.py", line 1450, in getresponse response.begin() ~~~~~~~~~~~~~~^^ File "/layers/paketo-buildpacks_cpython/cpython/lib/python3.14/http/client.py", line 336, in begin version, status, reason = self._read_status() ~~~~~~~~~~~~~~~~~^^ File "/layers/paketo-buildpacks_cpython/cpython/lib/python3.14/http/client.py", line 297, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/layers/paketo-buildpacks_cpython/cpython/lib/python3.14/socket.py", line 725, in readinto return self._sock.recv_into(b) ~~~~~~~~~~~~~~~~~~~~^^^ File "/layers/paketo-buildpacks_cpython/cpython/lib/python3.14/ssl.py", line 1304, in recv_into return self.read(nbytes, buffer) ~~~~~~~~~^^^^^^^^^^^^^^^^ File "/layers/paketo-buildpacks_cpython/cpython/lib/python3.14/ssl.py", line 1138, in read return self._sslobj.read(len, buffer) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ TimeoutError: The read operation timed out The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/elastic_transport/_node/_http_urllib3.py", line 167, in perform_request response = self.pool.urlopen( method, ...<4 lines>... **kw, # type: ignore[arg-type] ) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/urllib3/connectionpool.py", line 841, in urlopen retries = retries.increment( method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2] ) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/urllib3/util/retry.py", line 465, in increment raise reraise(type(error), error, _stacktrace) ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/urllib3/util/util.py", line 39, in reraise raise value File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/urllib3/connectionpool.py", line 787, in urlopen response = self._make_request( conn, ...<10 lines>... **response_kw, ) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/urllib3/connectionpool.py", line 536, in _make_request self._raise_timeout(err=e, url=url, timeout_value=read_timeout) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/urllib3/connectionpool.py", line 367, in _raise_timeout raise ReadTimeoutError( self, url, f"Read timed out. (read timeout={timeout_value})" ) from err urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='elasticsearch-es-http.elasticsearch.svc', port=9200): Read timed out. (read timeout=9.999619053909555) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/workspace/source/app/grabbers/pipelines/store_to_elasticsearch.py", line 72, in open_spider self._prepare_es_indexes() ~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/workspace/source/app/grabbers/pipelines/store_to_elasticsearch.py", line 95, in _prepare_es_indexes self.client.reindex_event_document( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ actual_index_name=self.index_name, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ historical_index_name=self.historical_index_name, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/workspace/source/app/grabbers/elasticsearch_client.py", line 145, in reindex_event_document self.client.reindex( ~~~~~~~~~~~~~~~~~~~^ source={"index": actual_index_name}, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dest={"index": historical_index_name}, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ wait_for_completion=True, ^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/elasticsearch/_sync/client/utils.py", line 421, in wrapped return api(*args, **kwargs) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/elasticsearch/_sync/client/__init__.py", line 4027, in reindex return self.perform_request( # type: ignore[return-value] ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ "POST", ^^^^^^^ ...<5 lines>... path_parts=__path_parts, ^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/elasticsearch/_sync/client/_base.py", line 271, in perform_request response = self._perform_request( method, ...<4 lines>... otel_span=otel_span, ) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/elasticsearch/_sync/client/_base.py", line 315, in _perform_request meta, resp_body = self.transport.perform_request( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ method, ^^^^^^^ ...<8 lines>... otel_span=otel_span, ^^^^^^^^^^^^^^^^^^^^ ) ^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/elastic_transport/_transport.py", line 344, in perform_request resp = node.perform_request( method, ...<3 lines>... request_timeout=request_timeout, ) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/elastic_transport/_node/_http_urllib3.py", line 202, in perform_request raise err from e elastic_transport.ConnectionTimeout: Connection timed out 2026-03-11 19:32:05 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2026-03-11 19:32:05 [scrapy_fake_useragent.middleware] INFO: Using '' as the User-Agent provider 2026-03-11 19:32:06 [scrapy.core.scraper] ERROR: Spider error processing (referer: None) Traceback (most recent call last): File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/utils/defer.py", line 355, in iter_errback yield next(it) ~~~~^^^^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/utils/python.py", line 311, in __next__ return next(self.data) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/utils/python.py", line 311, in __next__ return next(self.data) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 183, in process_sync self._process_spider_exception( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ response, ex, exception_processor_index ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ), ^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 256, in _process_spider_exception raise exception File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 179, in process_sync yield from iterable File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/spidermiddlewares/base.py", line 60, in process_spider_output for o in result: ^^^^^^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 183, in process_sync self._process_spider_exception( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ response, ex, exception_processor_index ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ), ^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 256, in _process_spider_exception raise exception File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 179, in process_sync yield from iterable File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/spidermiddlewares/base.py", line 60, in process_spider_output for o in result: ^^^^^^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 183, in process_sync self._process_spider_exception( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ response, ex, exception_processor_index ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ), ^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 256, in _process_spider_exception raise exception File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 179, in process_sync yield from iterable File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/spidermiddlewares/base.py", line 60, in process_spider_output for o in result: ^^^^^^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 183, in process_sync self._process_spider_exception( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ response, ex, exception_processor_index ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ), ^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 256, in _process_spider_exception raise exception File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 179, in process_sync yield from iterable File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/spidermiddlewares/depth.py", line 61, in process_spider_output yield from super().process_spider_output(response, result) File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/spidermiddlewares/base.py", line 60, in process_spider_output for o in result: ^^^^^^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 183, in process_sync self._process_spider_exception( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ response, ex, exception_processor_index ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ), ^ File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 256, in _process_spider_exception raise exception File "/layers/paketo-buildpacks_pip-install/packages/lib/python3.14/site-packages/scrapy/core/spidermw.py", line 179, in process_sync yield from iterable File "/workspace/source/app/grabbers/spiders/aua_events_grabber.py", line 137, in parse_index_html self._event_id = page_data["props"]["event"]["id"] ~~~~~~~~~~~~~~~~~~^^^^^^^^^ KeyError: 'event' 2026-03-11 19:32:06 [scrapy.core.engine] INFO: Closing spider (finished) 2026-03-11 19:32:06 [scrapy.extensions.feedexport] INFO: Stored xlsx feed (0 items) in: s3://usummit-prod-grabbers-bucket/AUA 2025 (Events)/AUA 2025 (Events)-2202_2026-03-11_19-31-47.xlsx 2026-03-11 19:32:06 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 328, 'downloader/request_count': 1, 'downloader/request_method_count/GET': 1, 'downloader/response_bytes': 53701, 'downloader/response_count': 1, 'downloader/response_status_count/200': 1, 'elapsed_time_seconds': 0.87663, 'feedexport/success_count/S3FeedStorage': 1, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2026, 3, 11, 19, 32, 6, 40697, tzinfo=datetime.timezone.utc), 'httpcompression/response_bytes': 137298, 'httpcompression/response_count': 1, 'items_per_minute': None, 'log_count/ERROR': 1, 'log_count/INFO': 3, 'memusage/max': 230342656, 'memusage/startup': 230342656, 'response_received_count': 1, 'responses_per_minute': None, 'scheduler/dequeued': 1, 'scheduler/dequeued/memory': 1, 'scheduler/enqueued': 1, 'scheduler/enqueued/memory': 1, 'spider_exceptions/KeyError': 1, 'spider_exceptions/count': 1, 'start_time': datetime.datetime(2026, 3, 11, 19, 32, 5, 164067, tzinfo=datetime.timezone.utc)} 2026-03-11 19:32:06 [scrapy.core.engine] INFO: Spider closed (finished)