Traceback (most recent call last):
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/uvicorn/protocols/http/httptools_impl.py", line 419, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/applications.py", line 123, in __call__
await self.middleware_stack(scope, receive, send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/errors.py", line 186, in __call__
raise exc
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/errors.py", line 164, in __call__
await self.app(scope, receive, _send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/base.py", line 189, in __call__
with collapse_excgroups():
File "/layers/heroku_python/python/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/_utils.py", line 91, in collapse_excgroups
raise exc
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/base.py", line 191, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/app.py", line 63, in session_middleware
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/base.py", line 165, in call_next
raise app_exc
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/base.py", line 151, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/cors.py", line 91, in __call__
await self.simple_response(scope, receive, send, request_headers=headers)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/cors.py", line 146, in simple_response
await self.app(scope, receive, send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 83, in __call__
await self.app(scope, receive, send_wrapper)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/routing.py", line 762, in __call__
await self.middleware_stack(scope, receive, send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/routing.py", line 782, in app
await route.handle(scope, receive, send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/routing.py", line 297, in handle
await self.app(scope, receive, send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/routing.py", line 77, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/starlette/routing.py", line 72, in app
response = await func(request)
^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/fastapi/routing.py", line 299, in app
raise e
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/fastapi/routing.py", line 294, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/routes/linkchecker.py", line 102, in check_links
results = await asyncio.gather(*tasks)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/routes/linkchecker.py", line 36, in make_request
response = await client.head(url[1])
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpx/_client.py", line 1844, in head
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpx/_client.py", line 1559, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpx/_client.py", line 1646, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpx/_client.py", line 1674, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpx/_client.py", line 1711, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpx/_client.py", line 1748, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpx/_transports/default.py", line 371, in handle_async_request
resp = await self._pool.handle_async_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 268, in handle_async_request
raise exc
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 251, in handle_async_request
response = await connection.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request
raise exc
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request
stream = await self._connect(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpcore/_async/connection.py", line 156, in _connect
stream = await stream.start_tls(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 78, in start_tls
raise exc
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 69, in start_tls
ssl_stream = await anyio.streams.tls.TLSStream.wrap(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/anyio/streams/tls.py", line 132, in wrap
await wrapper._call_sslobject_method(ssl_object.do_handshake)
File "/layers/heroku_python/dependencies/lib/python3.12/site-packages/anyio/streams/tls.py", line 172, in _call_sslobject_method
raise EndOfStream from None
anyio.EndOfStream