[2024-11-11 11:08:41 +0000] [1] [INFO] Using worker: uvicorn.workers.UvicornWorker
[2024-11-11 11:08:41 +0000] [9] [INFO] Booting worker with pid: 9
[2024-11-11 11:08:41 +0000] [10] [INFO] Booting worker with pid: 10
[2024-11-11 11:08:41 +0000] [11] [INFO] Booting worker with pid: 11
[2024-11-11 11:08:41 +0000] [12] [INFO] Booting worker with pid: 12
{"@timestamp":"2024-11-11T11:08:42.865Z","log.level":"info","message":"Started server process [11]","color_message":"Started server process [\u001b[36m%d\u001b[0m]","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":82,"name":"server.py"},"function":"_serve"},"original":"Started server process [11]"},"process":{"name":"MainProcess","pid":11,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Waiting for application startup.","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":48,"name":"on.py"},"function":"startup"},"original":"Waiting for application startup."},"process":{"name":"MainProcess","pid":11,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Started server process [12]","color_message":"Started server process [\u001b[36m%d\u001b[0m]","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":82,"name":"server.py"},"function":"_serve"},"original":"Started server process [12]"},"process":{"name":"MainProcess","pid":12,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Started server process [10]","color_message":"Started server process [\u001b[36m%d\u001b[0m]","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":82,"name":"server.py"},"function":"_serve"},"original":"Started server process [10]"},"process":{"name":"MainProcess","pid":10,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Starting up the Recommendation service","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":29,"name":"main.py"},"function":"lifespan"},"original":"Starting up the Recommendation service"},"process":{"name":"MainProcess","pid":11,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Waiting for application startup.","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":48,"name":"on.py"},"function":"startup"},"original":"Waiting for application startup."},"process":{"name":"MainProcess","pid":12,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Waiting for application startup.","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":48,"name":"on.py"},"function":"startup"},"original":"Waiting for application startup."},"process":{"name":"MainProcess","pid":10,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Started server process [9]","color_message":"Started server process [\u001b[36m%d\u001b[0m]","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":82,"name":"server.py"},"function":"_serve"},"original":"Started server process [9]"},"process":{"name":"MainProcess","pid":9,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Starting up the Recommendation service","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":29,"name":"main.py"},"function":"lifespan"},"original":"Starting up the Recommendation service"},"process":{"name":"MainProcess","pid":12,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.866Z","log.level":"info","message":"Waiting for application startup.","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":48,"name":"on.py"},"function":"startup"},"original":"Waiting for application startup."},"process":{"name":"MainProcess","pid":9,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.867Z","log.level":"info","message":"Starting up the Recommendation service","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":29,"name":"main.py"},"function":"lifespan"},"original":"Starting up the Recommendation service"},"process":{"name":"MainProcess","pid":10,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.867Z","log.level":"info","message":"Starting up the Recommendation service","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":29,"name":"main.py"},"function":"lifespan"},"original":"Starting up the Recommendation service"},"process":{"name":"MainProcess","pid":9,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.925Z","log.level":"error","message":"Could not fetch the list","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":474,"name":"fetcher.py"},"function":"get_collection_pages"},"original":"Could not fetch the list"},"process":{"name":"MainProcess","pid":11,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.935Z","log.level":"error","message":"Could not fetch the list","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":474,"name":"fetcher.py"},"function":"get_collection_pages"},"original":"Could not fetch the list"},"process":{"name":"MainProcess","pid":12,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.944Z","log.level":"error","message":"Could not fetch the list","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":474,"name":"fetcher.py"},"function":"get_collection_pages"},"original":"Could not fetch the list"},"process":{"name":"MainProcess","pid":9,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.945Z","log.level":"error","message":"Could not fetch the list","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":474,"name":"fetcher.py"},"function":"get_collection_pages"},"original":"Could not fetch the list"},"process":{"name":"MainProcess","pid":10,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.963Z","log.level":"error","message":"Could not fetch the list","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":613,"name":"fetcher.py"},"function":"get_collection_metadata_by_pages"},"original":"Could not fetch the list"},"process":{"name":"MainProcess","pid":11,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.985Z","log.level":"error","message":"Could not fetch the list","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":613,"name":"fetcher.py"},"function":"get_collection_metadata_by_pages"},"original":"Could not fetch the list"},"process":{"name":"MainProcess","pid":9,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.986Z","log.level":"error","message":"Could not fetch the list","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":613,"name":"fetcher.py"},"function":"get_collection_metadata_by_pages"},"original":"Could not fetch the list"},"process":{"name":"MainProcess","pid":12,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:08:42.987Z","log.level":"error","message":"Could not fetch the list","ecs.version":"1.6.0","log":{"logger":"recommendation","origin":{"file":{"line":613,"name":"fetcher.py"},"function":"get_collection_metadata_by_pages"},"original":"Could not fetch the list"},"process":{"name":"MainProcess","pid":10,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:09:13.114Z","log.level":"error","message":"Traceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 69, in map_httpcore_exceptions\n yield\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n resp = await self._pool.handle_async_request(req)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n raise exc from None\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n response = await connection.handle_async_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 99, in handle_async_request\n raise exc\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 76, in handle_async_request\n stream = await self._connect(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 122, in _connect\n stream = await self._network_backend.connect_tcp(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/auto.py\", line 30, in connect_tcp\n return await self._backend.connect_tcp(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py\", line 114, in connect_tcp\n with map_exceptions(exc_map):\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectTimeout\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/app/recommendation/external_data/fetcher.py\", line 35, in get\n response = await httpx_client.get(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1801, in get\n return await self.request(\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1574, in request\n return await self.send(request, auth=auth, follow_redirects=follow_redirects)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1661, in send\n response = await self._send_handling_auth(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n response = await self._send_handling_redirects(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n response = await self._send_single_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n response = await transport.handle_async_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 372, in handle_async_request\n with map_httpcore_exceptions():\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 86, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectTimeout\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/starlette/routing.py\", line 732, in lifespan\n async with self.lifespan_context(app) as maybe_state:\n File \"/usr/lib/python3.11/contextlib.py\", line 204, in __aenter__\n return await anext(self.gen)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/main.py\", line 30, in lifespan\n await update_page_collection_cache()\n File \"/app/recommendation/utils/cache_updater.py\", line 80, in update_page_collection_cache\n await live_page_collection.fetch_articles()\n File \"/app/recommendation/api/translation/models.py\", line 187, in fetch_articles\n results = await asyncio.gather(*tasks)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 575, in get_candidates_in_collection_page\n articles = await get_articles_by_titles(batch, language)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 426, in get_articles_by_titles\n data = await get(endpoint, params=params, headers=headers)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 44, in get\n log.error(f\"Error response {exc.response.status_code} while requesting {exc.request.url!r}.\")\n ^^^^^^^^^^^^\nAttributeError: 'ConnectTimeout' object has no attribute 'response'\n","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":121,"name":"on.py"},"function":"send"},"original":"Traceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 69, in map_httpcore_exceptions\n yield\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n resp = await self._pool.handle_async_request(req)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n raise exc from None\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n response = await connection.handle_async_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 99, in handle_async_request\n raise exc\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 76, in handle_async_request\n stream = await self._connect(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 122, in _connect\n stream = await self._network_backend.connect_tcp(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/auto.py\", line 30, in connect_tcp\n return await self._backend.connect_tcp(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py\", line 114, in connect_tcp\n with map_exceptions(exc_map):\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectTimeout\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/app/recommendation/external_data/fetcher.py\", line 35, in get\n response = await httpx_client.get(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1801, in get\n return await self.request(\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1574, in request\n return await self.send(request, auth=auth, follow_redirects=follow_redirects)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1661, in send\n response = await self._send_handling_auth(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n response = await self._send_handling_redirects(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n response = await self._send_single_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n response = await transport.handle_async_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 372, in handle_async_request\n with map_httpcore_exceptions():\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 86, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectTimeout\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/starlette/routing.py\", line 732, in lifespan\n async with self.lifespan_context(app) as maybe_state:\n File \"/usr/lib/python3.11/contextlib.py\", line 204, in __aenter__\n return await anext(self.gen)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/main.py\", line 30, in lifespan\n await update_page_collection_cache()\n File \"/app/recommendation/utils/cache_updater.py\", line 80, in update_page_collection_cache\n await live_page_collection.fetch_articles()\n File \"/app/recommendation/api/translation/models.py\", line 187, in fetch_articles\n results = await asyncio.gather(*tasks)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 575, in get_candidates_in_collection_page\n articles = await get_articles_by_titles(batch, language)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 426, in get_articles_by_titles\n data = await get(endpoint, params=params, headers=headers)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 44, in get\n log.error(f\"Error response {exc.response.status_code} while requesting {exc.request.url!r}.\")\n ^^^^^^^^^^^^\nAttributeError: 'ConnectTimeout' object has no attribute 'response'\n"},"process":{"name":"MainProcess","pid":11,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:09:13.123Z","log.level":"error","message":"Traceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 69, in map_httpcore_exceptions\n yield\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n resp = await self._pool.handle_async_request(req)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n raise exc from None\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n response = await connection.handle_async_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 99, in handle_async_request\n raise exc\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 76, in handle_async_request\n stream = await self._connect(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 122, in _connect\n stream = await self._network_backend.connect_tcp(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/auto.py\", line 30, in connect_tcp\n return await self._backend.connect_tcp(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py\", line 114, in connect_tcp\n with map_exceptions(exc_map):\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectTimeout\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/app/recommendation/external_data/fetcher.py\", line 35, in get\n response = await httpx_client.get(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1801, in get\n return await self.request(\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1574, in request\n return await self.send(request, auth=auth, follow_redirects=follow_redirects)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1661, in send\n response = await self._send_handling_auth(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n response = await self._send_handling_redirects(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n response = await self._send_single_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n response = await transport.handle_async_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 372, in handle_async_request\n with map_httpcore_exceptions():\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 86, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectTimeout\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/starlette/routing.py\", line 732, in lifespan\n async with self.lifespan_context(app) as maybe_state:\n File \"/usr/lib/python3.11/contextlib.py\", line 204, in __aenter__\n return await anext(self.gen)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/main.py\", line 30, in lifespan\n await update_page_collection_cache()\n File \"/app/recommendation/utils/cache_updater.py\", line 80, in update_page_collection_cache\n await live_page_collection.fetch_articles()\n File \"/app/recommendation/api/translation/models.py\", line 187, in fetch_articles\n results = await asyncio.gather(*tasks)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 575, in get_candidates_in_collection_page\n articles = await get_articles_by_titles(batch, language)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 426, in get_articles_by_titles\n data = await get(endpoint, params=params, headers=headers)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 44, in get\n log.error(f\"Error response {exc.response.status_code} while requesting {exc.request.url!r}.\")\n ^^^^^^^^^^^^\nAttributeError: 'ConnectTimeout' object has no attribute 'response'\n","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":121,"name":"on.py"},"function":"send"},"original":"Traceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 69, in map_httpcore_exceptions\n yield\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n resp = await self._pool.handle_async_request(req)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n raise exc from None\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n response = await connection.handle_async_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 99, in handle_async_request\n raise exc\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 76, in handle_async_request\n stream = await self._connect(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 122, in _connect\n stream = await self._network_backend.connect_tcp(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/auto.py\", line 30, in connect_tcp\n return await self._backend.connect_tcp(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py\", line 114, in connect_tcp\n with map_exceptions(exc_map):\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectTimeout\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/app/recommendation/external_data/fetcher.py\", line 35, in get\n response = await httpx_client.get(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1801, in get\n return await self.request(\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1574, in request\n return await self.send(request, auth=auth, follow_redirects=follow_redirects)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1661, in send\n response = await self._send_handling_auth(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n response = await self._send_handling_redirects(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n response = await self._send_single_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n response = await transport.handle_async_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 372, in handle_async_request\n with map_httpcore_exceptions():\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 86, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectTimeout\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/starlette/routing.py\", line 732, in lifespan\n async with self.lifespan_context(app) as maybe_state:\n File \"/usr/lib/python3.11/contextlib.py\", line 204, in __aenter__\n return await anext(self.gen)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/main.py\", line 30, in lifespan\n await update_page_collection_cache()\n File \"/app/recommendation/utils/cache_updater.py\", line 80, in update_page_collection_cache\n await live_page_collection.fetch_articles()\n File \"/app/recommendation/api/translation/models.py\", line 187, in fetch_articles\n results = await asyncio.gather(*tasks)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 575, in get_candidates_in_collection_page\n articles = await get_articles_by_titles(batch, language)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 426, in get_articles_by_titles\n data = await get(endpoint, params=params, headers=headers)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 44, in get\n log.error(f\"Error response {exc.response.status_code} while requesting {exc.request.url!r}.\")\n ^^^^^^^^^^^^\nAttributeError: 'ConnectTimeout' object has no attribute 'response'\n"},"process":{"name":"MainProcess","pid":10,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:09:13.124Z","log.level":"error","message":"Traceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 69, in map_httpcore_exceptions\n yield\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n resp = await self._pool.handle_async_request(req)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n raise exc from None\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n response = await connection.handle_async_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 99, in handle_async_request\n raise exc\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 76, in handle_async_request\n stream = await self._connect(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 122, in _connect\n stream = await self._network_backend.connect_tcp(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/auto.py\", line 30, in connect_tcp\n return await self._backend.connect_tcp(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py\", line 114, in connect_tcp\n with map_exceptions(exc_map):\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectTimeout\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/app/recommendation/external_data/fetcher.py\", line 35, in get\n response = await httpx_client.get(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1801, in get\n return await self.request(\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1574, in request\n return await self.send(request, auth=auth, follow_redirects=follow_redirects)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1661, in send\n response = await self._send_handling_auth(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n response = await self._send_handling_redirects(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n response = await self._send_single_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n response = await transport.handle_async_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 372, in handle_async_request\n with map_httpcore_exceptions():\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 86, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectTimeout\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/starlette/routing.py\", line 732, in lifespan\n async with self.lifespan_context(app) as maybe_state:\n File \"/usr/lib/python3.11/contextlib.py\", line 204, in __aenter__\n return await anext(self.gen)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/main.py\", line 30, in lifespan\n await update_page_collection_cache()\n File \"/app/recommendation/utils/cache_updater.py\", line 80, in update_page_collection_cache\n await live_page_collection.fetch_articles()\n File \"/app/recommendation/api/translation/models.py\", line 187, in fetch_articles\n results = await asyncio.gather(*tasks)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 575, in get_candidates_in_collection_page\n articles = await get_articles_by_titles(batch, language)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 426, in get_articles_by_titles\n data = await get(endpoint, params=params, headers=headers)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 44, in get\n log.error(f\"Error response {exc.response.status_code} while requesting {exc.request.url!r}.\")\n ^^^^^^^^^^^^\nAttributeError: 'ConnectTimeout' object has no attribute 'response'\n","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":121,"name":"on.py"},"function":"send"},"original":"Traceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 69, in map_httpcore_exceptions\n yield\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n resp = await self._pool.handle_async_request(req)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n raise exc from None\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n response = await connection.handle_async_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 99, in handle_async_request\n raise exc\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 76, in handle_async_request\n stream = await self._connect(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 122, in _connect\n stream = await self._network_backend.connect_tcp(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/auto.py\", line 30, in connect_tcp\n return await self._backend.connect_tcp(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py\", line 114, in connect_tcp\n with map_exceptions(exc_map):\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectTimeout\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/app/recommendation/external_data/fetcher.py\", line 35, in get\n response = await httpx_client.get(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1801, in get\n return await self.request(\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1574, in request\n return await self.send(request, auth=auth, follow_redirects=follow_redirects)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1661, in send\n response = await self._send_handling_auth(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n response = await self._send_handling_redirects(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n response = await self._send_single_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n response = await transport.handle_async_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 372, in handle_async_request\n with map_httpcore_exceptions():\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 86, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectTimeout\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/starlette/routing.py\", line 732, in lifespan\n async with self.lifespan_context(app) as maybe_state:\n File \"/usr/lib/python3.11/contextlib.py\", line 204, in __aenter__\n return await anext(self.gen)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/main.py\", line 30, in lifespan\n await update_page_collection_cache()\n File \"/app/recommendation/utils/cache_updater.py\", line 80, in update_page_collection_cache\n await live_page_collection.fetch_articles()\n File \"/app/recommendation/api/translation/models.py\", line 187, in fetch_articles\n results = await asyncio.gather(*tasks)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 575, in get_candidates_in_collection_page\n articles = await get_articles_by_titles(batch, language)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 426, in get_articles_by_titles\n data = await get(endpoint, params=params, headers=headers)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 44, in get\n log.error(f\"Error response {exc.response.status_code} while requesting {exc.request.url!r}.\")\n ^^^^^^^^^^^^\nAttributeError: 'ConnectTimeout' object has no attribute 'response'\n"},"process":{"name":"MainProcess","pid":9,"thread":{"id":140039512761024,"name":"MainThread"}}}
{"@timestamp":"2024-11-11T11:09:13.142Z","log.level":"error","message":"Traceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 69, in map_httpcore_exceptions\n yield\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n resp = await self._pool.handle_async_request(req)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n raise exc from None\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n response = await connection.handle_async_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 99, in handle_async_request\n raise exc\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 76, in handle_async_request\n stream = await self._connect(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 122, in _connect\n stream = await self._network_backend.connect_tcp(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/auto.py\", line 30, in connect_tcp\n return await self._backend.connect_tcp(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py\", line 114, in connect_tcp\n with map_exceptions(exc_map):\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectTimeout\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/app/recommendation/external_data/fetcher.py\", line 35, in get\n response = await httpx_client.get(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1801, in get\n return await self.request(\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1574, in request\n return await self.send(request, auth=auth, follow_redirects=follow_redirects)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1661, in send\n response = await self._send_handling_auth(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n response = await self._send_handling_redirects(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n response = await self._send_single_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n response = await transport.handle_async_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 372, in handle_async_request\n with map_httpcore_exceptions():\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 86, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectTimeout\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/starlette/routing.py\", line 732, in lifespan\n async with self.lifespan_context(app) as maybe_state:\n File \"/usr/lib/python3.11/contextlib.py\", line 204, in __aenter__\n return await anext(self.gen)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/main.py\", line 30, in lifespan\n await update_page_collection_cache()\n File \"/app/recommendation/utils/cache_updater.py\", line 80, in update_page_collection_cache\n await live_page_collection.fetch_articles()\n File \"/app/recommendation/api/translation/models.py\", line 187, in fetch_articles\n results = await asyncio.gather(*tasks)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 575, in get_candidates_in_collection_page\n articles = await get_articles_by_titles(batch, language)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 426, in get_articles_by_titles\n data = await get(endpoint, params=params, headers=headers)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 44, in get\n log.error(f\"Error response {exc.response.status_code} while requesting {exc.request.url!r}.\")\n ^^^^^^^^^^^^\nAttributeError: 'ConnectTimeout' object has no attribute 'response'\n","ecs.version":"1.6.0","log":{"logger":"uvicorn.error","origin":{"file":{"line":121,"name":"on.py"},"function":"send"},"original":"Traceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 69, in map_httpcore_exceptions\n yield\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n resp = await self._pool.handle_async_request(req)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n raise exc from None\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n response = await connection.handle_async_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 99, in handle_async_request\n raise exc\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 76, in handle_async_request\n stream = await self._connect(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_async/connection.py\", line 122, in _connect\n stream = await self._network_backend.connect_tcp(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/auto.py\", line 30, in connect_tcp\n return await self._backend.connect_tcp(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_backends/anyio.py\", line 114, in connect_tcp\n with map_exceptions(exc_map):\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectTimeout\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/app/recommendation/external_data/fetcher.py\", line 35, in get\n response = await httpx_client.get(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1801, in get\n return await self.request(\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1574, in request\n return await self.send(request, auth=auth, follow_redirects=follow_redirects)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1661, in send\n response = await self._send_handling_auth(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n response = await self._send_handling_redirects(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n response = await self._send_single_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n response = await transport.handle_async_request(request)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 372, in handle_async_request\n with map_httpcore_exceptions():\n File \"/usr/lib/python3.11/contextlib.py\", line 155, in __exit__\n self.gen.throw(typ, value, traceback)\n File \"/opt/lib/venv/lib/python3.11/site-packages/httpx/_transports/default.py\", line 86, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectTimeout\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/lib/venv/lib/python3.11/site-packages/starlette/routing.py\", line 732, in lifespan\n async with self.lifespan_context(app) as maybe_state:\n File \"/usr/lib/python3.11/contextlib.py\", line 204, in __aenter__\n return await anext(self.gen)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/main.py\", line 30, in lifespan\n await update_page_collection_cache()\n File \"/app/recommendation/utils/cache_updater.py\", line 80, in update_page_collection_cache\n await live_page_collection.fetch_articles()\n File \"/app/recommendation/api/translation/models.py\", line 187, in fetch_articles\n results = await asyncio.gather(*tasks)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 575, in get_candidates_in_collection_page\n articles = await get_articles_by_titles(batch, language)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 426, in get_articles_by_titles\n data = await get(endpoint, params=params, headers=headers)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/recommendation/external_data/fetcher.py\", line 44, in get\n log.error(f\"Error response {exc.response.status_code} while requesting {exc.request.url!r}.\")\n ^^^^^^^^^^^^\nAttributeError: 'ConnectTimeout' object has no attribute 'response'\n"},"process":{"name":"MainProcess","pid":12,"thread":{"id":140039512761024,"name":"MainThread"}}}