Skip to content

RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope #3728

@hermeschen1116

Description

@hermeschen1116
  • Initially raised as discussion

Hello, I recently testing my project in Python 3.13.9. And I got the error below.
It seems like some problem with anyio in Python 3.13. Everything works when downgrade to Python 3.12.

2025-11-04T04:21:06.180982Z [DEBUG   ] httpcore.connection: connect_tcp.started host='localhost' port=9997 local_address=None timeout=5.0 socket_options=None func_name=atrace lineno=87 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_trace.py thread=8453398656 process=49194 app_env=dev
2025-11-04T04:21:06.181586Z [DEBUG   ] httpcore.connection: connect_tcp.started host='localhost' port=9997 local_address=None timeout=5.0 socket_options=None func_name=atrace lineno=87 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_trace.py thread=8453398656 process=49194 app_env=dev
2025-11-04T04:21:06.182975Z [DEBUG   ] httpcore.connection: connect_tcp.failed exception=RuntimeError("Attempted to exit a cancel scope that isn't the current tasks's current cancel scope") func_name=atrace lineno=87 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_trace.py thread=8453398656 process=49194 app_env=dev
2025-11-04T04:21:06.183217Z [DEBUG   ] httpcore.connection: connect_tcp.failed exception=RuntimeError("Attempted to exit a cancel scope that isn't the current tasks's current cancel scope") func_name=atrace lineno=87 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_trace.py thread=8453398656 process=49194 app_env=dev
2025-11-04T04:21:06.183472Z [DEBUG   ] utils.Utils: Failed to execute check_server_status.<locals>._check func_name=async_wrapper lineno=139 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/utils/Utils.py thread=6141276160 process=49194 app_env=dev num_attempt=0
╭──────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────╮
│ in async_wrapper:132                                                                                      │
│                                                                                                           │
│ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py: │
│ 781 in __aexit__                                                                                          │
│                                                                                                           │
│    778 │   │   │   │   │   # added to self._exceptions so it's ok to break exception                      │
│    779 │   │   │   │   │   # chaining and avoid adding a "During handling of above..."                    │
│    780 │   │   │   │   │   # for each nesting level.                                                      │
│ ❱  781 │   │   │   │   │   raise BaseExceptionGroup(                                                      │
│    782 │   │   │   │   │   │   "unhandled errors in a TaskGroup", self._exceptions                        │
│    783 │   │   │   │   │   ) from None                                                                    │
│    784 │   │   │   │   elif exc_val:                                                                      │
│                                                                                                           │
│ ╭───────────────────────────────── locals ──────────────────────────────────╮                             │
│ │   exc_type = None                                                         │                             │
│ │       loop = <uvloop.Loop running=True closed=False debug=False>          │                             │
│ │       self = <anyio._backends._asyncio.TaskGroup object at 0x10e807610>   │                             │
│ │ wait_scope = <anyio._backends._asyncio.CancelScope object at 0x10e7ff9b0> │                             │
│ ╰───────────────────────────────────────────────────────────────────────────╯                             │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)

╭──────────────────────────────────────────── Sub-exception #1 ─────────────────────────────────────────────╮
│ ╭────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────╮ │
│ │ in _run_in_isolation:130                                                                              │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/src/stream_server/internal/MediaServer.py:99 in _check      │ │
│ │                                                                                                       │ │
│ │    96 │   @retry(default_max_attempt=5, duration_or_func=_delay)                                      │ │
│ │    97 │   async def _check() -> None:                                                                 │ │
│ │    98 │   │   await LOGGER.adebug("try to call media server")                                         │ │
│ │ ❱  99 │   │   response: httpx.Response = await client.get("/v3/paths/list")                           │ │
│ │   100 │   │   if response.status_code == 200:                                                         │ │
│ │   101 │   │   │   await LOGGER.adebug("media server is running")                                      │ │
│ │   102 │   │   │   return                                                                              │ │
│ │                                                                                                       │ │
│ │ ╭────────────────────── locals ──────────────────────╮                                                │ │
│ │ │ client = <httpx.AsyncClient object at 0x10e805950> │                                                │ │
│ │ ╰────────────────────────────────────────────────────╯                                                │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1768 in │ │
│ │ get                                                                                                   │ │
│ │                                                                                                       │ │
│ │   1765 │   │                                                                                          │ │
│ │   1766 │   │   **Parameters**: See `httpx.request`.                                                   │ │
│ │   1767 │   │   """                                                                                    │ │
│ │ ❱ 1768 │   │   return await self.request(                                                             │ │
│ │   1769 │   │   │   "GET",                                                                             │ │
│ │   1770 │   │   │   url,                                                                               │ │
│ │   1771 │   │   │   params=params,                                                                     │ │
│ │                                                                                                       │ │
│ │ ╭───────────────────────────────── locals ──────────────────────────────────╮                         │ │
│ │ │             auth = <httpx._client.UseClientDefault object at 0x10adb5fd0> │                         │ │
│ │ │          cookies = None                                                   │                         │ │
│ │ │       extensions = None                                                   │                         │ │
│ │ │ follow_redirects = <httpx._client.UseClientDefault object at 0x10adb5fd0> │                         │ │
│ │ │          headers = None                                                   │                         │ │
│ │ │           params = None                                                   │                         │ │
│ │ │             self = <httpx.AsyncClient object at 0x10e805950>              │                         │ │
│ │ │          timeout = <httpx._client.UseClientDefault object at 0x10adb5fd0> │                         │ │
│ │ │              url = '/v3/paths/list'                                       │                         │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────╯                         │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1540 in │ │
│ │ request                                                                                               │ │
│ │                                                                                                       │ │
│ │   1537 │   │   │   timeout=timeout,                                                                   │ │
│ │   1538 │   │   │   extensions=extensions,                                                             │ │
│ │   1539 │   │   )                                                                                      │ │
│ │ ❱ 1540 │   │   return await self.send(request, auth=auth, follow_redirects=follow_redirects)          │ │
│ │   1541 │                                                                                              │ │
│ │   1542 │   @asynccontextmanager                                                                       │ │
│ │   1543 │   async def stream(                                                                          │ │
│ │                                                                                                       │ │
│ │ ╭────────────────────────────────── locals ──────────────────────────────────╮                        │ │
│ │ │             auth = <httpx._client.UseClientDefault object at 0x10adb5fd0>  │                        │ │
│ │ │          content = None                                                    │                        │ │
│ │ │          cookies = None                                                    │                        │ │
│ │ │             data = None                                                    │                        │ │
│ │ │       extensions = None                                                    │                        │ │
│ │ │            files = None                                                    │                        │ │
│ │ │ follow_redirects = <httpx._client.UseClientDefault object at 0x10adb5fd0>  │                        │ │
│ │ │          headers = None                                                    │                        │ │
│ │ │             json = None                                                    │                        │ │
│ │ │           method = 'GET'                                                   │                        │ │
│ │ │           params = None                                                    │                        │ │
│ │ │          request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │                        │ │
│ │ │             self = <httpx.AsyncClient object at 0x10e805950>               │                        │ │
│ │ │          timeout = <httpx._client.UseClientDefault object at 0x10adb5fd0>  │                        │ │
│ │ │              url = '/v3/paths/list'                                        │                        │ │
│ │ ╰────────────────────────────────────────────────────────────────────────────╯                        │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1629 in │ │
│ │ send                                                                                                  │ │
│ │                                                                                                       │ │
│ │   1626 │   │                                                                                          │ │
│ │   1627 │   │   auth = self._build_request_auth(request, auth)                                         │ │
│ │   1628 │   │                                                                                          │ │
│ │ ❱ 1629 │   │   response = await self._send_handling_auth(                                             │ │
│ │   1630 │   │   │   request,                                                                           │ │
│ │   1631 │   │   │   auth=auth,                                                                         │ │
│ │   1632 │   │   │   follow_redirects=follow_redirects,                                                 │ │
│ │                                                                                                       │ │
│ │ ╭────────────────────────────────── locals ──────────────────────────────────╮                        │ │
│ │ │             auth = <httpx.Auth object at 0x10e816ba0>                      │                        │ │
│ │ │ follow_redirects = True                                                    │                        │ │
│ │ │          request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │                        │ │
│ │ │             self = <httpx.AsyncClient object at 0x10e805950>               │                        │ │
│ │ │           stream = False                                                   │                        │ │
│ │ ╰────────────────────────────────────────────────────────────────────────────╯                        │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1657 in │ │
│ │ _send_handling_auth                                                                                   │ │
│ │                                                                                                       │ │
│ │   1654 │   │   │   request = await auth_flow.__anext__()                                              │ │
│ │   1655 │   │   │                                                                                      │ │
│ │   1656 │   │   │   while True:                                                                        │ │
│ │ ❱ 1657 │   │   │   │   response = await self._send_handling_redirects(                                │ │
│ │   1658 │   │   │   │   │   request,                                                                   │ │
│ │   1659 │   │   │   │   │   follow_redirects=follow_redirects,                                         │ │
│ │   1660 │   │   │   │   │   history=history,                                                           │ │
│ │                                                                                                       │ │
│ │ ╭──────────────────────────────────── locals ─────────────────────────────────────╮                   │ │
│ │ │             auth = <httpx.Auth object at 0x10e816ba0>                           │                   │ │
│ │ │        auth_flow = <async_generator object Auth.async_auth_flow at 0x10e84b300> │                   │ │
│ │ │ follow_redirects = True                                                         │                   │ │
│ │ │          history = []                                                           │                   │ │
│ │ │          request = <Request('GET', 'http://localhost:9997/v3/paths/list')>      │                   │ │
│ │ │             self = <httpx.AsyncClient object at 0x10e805950>                    │                   │ │
│ │ ╰─────────────────────────────────────────────────────────────────────────────────╯                   │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1694 in │ │
│ │ _send_handling_redirects                                                                              │ │
│ │                                                                                                       │ │
│ │   1691 │   │   │   for hook in self._event_hooks["request"]:                                          │ │
│ │   1692 │   │   │   │   await hook(request)                                                            │ │
│ │   1693 │   │   │                                                                                      │ │
│ │ ❱ 1694 │   │   │   response = await self._send_single_request(request)                                │ │
│ │   1695 │   │   │   try:                                                                               │ │
│ │   1696 │   │   │   │   for hook in self._event_hooks["response"]:                                     │ │
│ │   1697 │   │   │   │   │   await hook(response)                                                       │ │
│ │                                                                                                       │ │
│ │ ╭────────────────────────────────── locals ──────────────────────────────────╮                        │ │
│ │ │ follow_redirects = True                                                    │                        │ │
│ │ │          history = []                                                      │                        │ │
│ │ │          request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │                        │ │
│ │ │             self = <httpx.AsyncClient object at 0x10e805950>               │                        │ │
│ │ ╰────────────────────────────────────────────────────────────────────────────╯                        │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1730 in │ │
│ │ _send_single_request                                                                                  │ │
│ │                                                                                                       │ │
│ │   1727 │   │   │   )                                                                                  │ │
│ │   1728 │   │                                                                                          │ │
│ │   1729 │   │   with request_context(request=request):                                                 │ │
│ │ ❱ 1730 │   │   │   response = await transport.handle_async_request(request)                           │ │
│ │   1731 │   │                                                                                          │ │
│ │   1732 │   │   assert isinstance(response.stream, AsyncByteStream)                                    │ │
│ │   1733 │   │   response.request = request                                                             │ │
│ │                                                                                                       │ │
│ │ ╭────────────────────────────── locals ───────────────────────────────╮                               │ │
│ │ │   request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │                               │ │
│ │ │      self = <httpx.AsyncClient object at 0x10e805950>               │                               │ │
│ │ │     start = 264998.268840791                                        │                               │ │
│ │ │ transport = <httpx.AsyncHTTPTransport object at 0x10e806c10>        │                               │ │
│ │ ╰─────────────────────────────────────────────────────────────────────╯                               │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_transports/defaul │ │
│ │ t.py:394 in handle_async_request                                                                      │ │
│ │                                                                                                       │ │
│ │   391 │   │   │   extensions=request.extensions,                                                      │ │
│ │   392 │   │   )                                                                                       │ │
│ │   393 │   │   with map_httpcore_exceptions():                                                         │ │
│ │ ❱ 394 │   │   │   resp = await self._pool.handle_async_request(req)                                   │ │
│ │   395 │   │                                                                                           │ │
│ │   396 │   │   assert isinstance(resp.stream, typing.AsyncIterable)                                    │ │
│ │   397                                                                                                 │ │
│ │                                                                                                       │ │
│ │ ╭───────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │
│ │ │ httpcore = <module 'httpcore' from                                                                │ │ │
│ │ │            '/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcor… │ │ │
│ │ │      req = <Request [b'GET']>                                                                     │ │ │
│ │ │  request = <Request('GET', 'http://localhost:9997/v3/paths/list')>                                │ │ │
│ │ │     self = <httpx.AsyncHTTPTransport object at 0x10e806c10>                                       │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on_pool.py:256 in handle_async_request                                                                │ │
│ │                                                                                                       │ │
│ │   253 │   │   │   │   closing = self._assign_requests_to_connections()                                │ │
│ │   254 │   │   │                                                                                       │ │
│ │   255 │   │   │   await self._close_connections(closing)                                              │ │
│ │ ❱ 256 │   │   │   raise exc from None                                                                 │ │
│ │   257 │   │                                                                                           │ │
│ │   258 │   │   # Return the response. Note that in this case we still have to manage                   │ │
│ │   259 │   │   # the point at which the response is closed.                                            │ │
│ │                                                                                                       │ │
│ │ ╭───────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │
│ │ │      closing = []                                                                                 │ │ │
│ │ │   connection = <AsyncHTTPConnection [CONNECTION FAILED]>                                          │ │ │
│ │ │ pool_request = <httpcore._async.connection_pool.AsyncPoolRequest object at 0x10e816f90>           │ │ │
│ │ │      request = <Request [b'GET']>                                                                 │ │ │
│ │ │       scheme = 'http'                                                                             │ │ │
│ │ │         self = <AsyncConnectionPool [Requests: 0 active, 0 queued | Connections: 0 active, 0      │ │ │
│ │ │                idle]>                                                                             │ │ │
│ │ │      timeout = 5.0                                                                                │ │ │
│ │ │     timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0}                           │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on_pool.py:236 in handle_async_request                                                                │ │
│ │                                                                                                       │ │
│ │   233 │   │   │   │                                                                                   │ │
│ │   234 │   │   │   │   try:                                                                            │ │
│ │   235 │   │   │   │   │   # Send the request on the assigned connection.                              │ │
│ │ ❱ 236 │   │   │   │   │   response = await connection.handle_async_request(                           │ │
│ │   237 │   │   │   │   │   │   pool_request.request                                                    │ │
│ │   238 │   │   │   │   │   )                                                                           │ │
│ │   239 │   │   │   │   except ConnectionNotAvailable:                                                  │ │
│ │                                                                                                       │ │
│ │ ╭───────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │
│ │ │      closing = []                                                                                 │ │ │
│ │ │   connection = <AsyncHTTPConnection [CONNECTION FAILED]>                                          │ │ │
│ │ │ pool_request = <httpcore._async.connection_pool.AsyncPoolRequest object at 0x10e816f90>           │ │ │
│ │ │      request = <Request [b'GET']>                                                                 │ │ │
│ │ │       scheme = 'http'                                                                             │ │ │
│ │ │         self = <AsyncConnectionPool [Requests: 0 active, 0 queued | Connections: 0 active, 0      │ │ │
│ │ │                idle]>                                                                             │ │ │
│ │ │      timeout = 5.0                                                                                │ │ │
│ │ │     timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0}                           │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on.py:101 in handle_async_request                                                                     │ │
│ │                                                                                                       │ │
│ │    98 │   │   │   │   │   │   )                                                                       │ │
│ │    99 │   │   except BaseException as exc:                                                            │ │
│ │   100 │   │   │   self._connect_failed = True                                                         │ │
│ │ ❱ 101 │   │   │   raise exc                                                                           │ │
│ │   102 │   │                                                                                           │ │
│ │   103 │   │   return await self._connection.handle_async_request(request)                             │ │
│ │   104                                                                                                 │ │
│ │                                                                                                       │ │
│ │ ╭────────────────────── locals ───────────────────────╮                                               │ │
│ │ │ request = <Request [b'GET']>                        │                                               │ │
│ │ │    self = <AsyncHTTPConnection [CONNECTION FAILED]> │                                               │ │
│ │ ╰─────────────────────────────────────────────────────╯                                               │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on.py:78 in handle_async_request                                                                      │ │
│ │                                                                                                       │ │
│ │    75 │   │   try:                                                                                    │ │
│ │    76 │   │   │   async with self._request_lock:                                                      │ │
│ │    77 │   │   │   │   if self._connection is None:                                                    │ │
│ │ ❱  78 │   │   │   │   │   stream = await self._connect(request)                                       │ │
│ │    79 │   │   │   │   │                                                                               │ │
│ │    80 │   │   │   │   │   ssl_object = stream.get_extra_info("ssl_object")                            │ │
│ │    81 │   │   │   │   │   http2_negotiated = (                                                        │ │
│ │                                                                                                       │ │
│ │ ╭────────────────────── locals ───────────────────────╮                                               │ │
│ │ │ request = <Request [b'GET']>                        │                                               │ │
│ │ │    self = <AsyncHTTPConnection [CONNECTION FAILED]> │                                               │ │
│ │ ╰─────────────────────────────────────────────────────╯                                               │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on.py:124 in _connect                                                                                 │ │
│ │                                                                                                       │ │
│ │   121 │   │   │   │   │   │   "socket_options": self._socket_options,                                 │ │
│ │   122 │   │   │   │   │   }                                                                           │ │
│ │   123 │   │   │   │   │   async with Trace("connect_tcp", logger, request, kwargs) as trace:          │ │
│ │ ❱ 124 │   │   │   │   │   │   stream = await self._network_backend.connect_tcp(**kwargs)              │ │
│ │   125 │   │   │   │   │   │   trace.return_value = stream                                             │ │
│ │   126 │   │   │   │   else:                                                                           │ │
│ │   127 │   │   │   │   │   kwargs = {                                                                  │ │
│ │                                                                                                       │ │
│ │ ╭──────────────────────────────── locals ─────────────────────────────────╮                           │ │
│ │ │       delays = <generator object exponential_backoff at 0x10e809630>    │                           │ │
│ │ │       kwargs = {                                                        │                           │ │
│ │ │                │   'host': 'localhost',                                 │                           │ │
│ │ │                │   'port': 9997,                                        │                           │ │
│ │ │                │   'local_address': None,                               │                           │ │
│ │ │                │   'timeout': 5.0,                                      │                           │ │
│ │ │                │   'socket_options': None                               │                           │ │
│ │ │                }                                                        │                           │ │
│ │ │      request = <Request [b'GET']>                                       │                           │ │
│ │ │ retries_left = 0                                                        │                           │ │
│ │ │         self = <AsyncHTTPConnection [CONNECTION FAILED]>                │                           │ │
│ │ │ sni_hostname = None                                                     │                           │ │
│ │ │      timeout = 5.0                                                      │                           │ │
│ │ │     timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │                           │ │
│ │ │        trace = <httpcore._trace.Trace object at 0x10e817a10>            │                           │ │
│ │ ╰─────────────────────────────────────────────────────────────────────────╯                           │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_backends/auto. │ │
│ │ py:31 in connect_tcp                                                                                  │ │
│ │                                                                                                       │ │
│ │   28 │   │   socket_options: typing.Iterable[SOCKET_OPTION] | None = None,                            │ │
│ │   29 │   ) -> AsyncNetworkStream:                                                                     │ │
│ │   30 │   │   await self._init_backend()                                                               │ │
│ │ ❱ 31 │   │   return await self._backend.connect_tcp(                                                  │ │
│ │   32 │   │   │   host,                                                                                │ │
│ │   33 │   │   │   port,                                                                                │ │
│ │   34 │   │   │   timeout=timeout,                                                                     │ │
│ │                                                                                                       │ │
│ │ ╭─────────────────────────────────── locals ───────────────────────────────────╮                      │ │
│ │ │           host = 'localhost'                                                 │                      │ │
│ │ │  local_address = None                                                        │                      │ │
│ │ │           port = 9997                                                        │                      │ │
│ │ │           self = <httpcore._backends.auto.AutoBackend object at 0x10e806e90> │                      │ │
│ │ │ socket_options = None                                                        │                      │ │
│ │ │        timeout = 5.0                                                         │                      │ │
│ │ ╰──────────────────────────────────────────────────────────────────────────────╯                      │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_backends/anyio │ │
│ │ .py:114 in connect_tcp                                                                                │ │
│ │                                                                                                       │ │
│ │   111 │   │   │   anyio.BrokenResourceError: ConnectError,                                            │ │
│ │   112 │   │   }                                                                                       │ │
│ │   113 │   │   with map_exceptions(exc_map):                                                           │ │
│ │ ❱ 114 │   │   │   with anyio.fail_after(timeout):                                                     │ │
│ │   115 │   │   │   │   stream: anyio.abc.ByteStream = await anyio.connect_tcp(                         │ │
│ │   116 │   │   │   │   │   remote_host=host,                                                           │ │
│ │   117 │   │   │   │   │   remote_port=port,                                                           │ │
│ │                                                                                                       │ │
│ │ ╭───────────────────────────────────────── locals ──────────────────────────────────────────╮         │ │
│ │ │        exc_map = {                                                                        │         │ │
│ │ │                  │   <class 'TimeoutError'>: <class 'httpcore.ConnectTimeout'>,           │         │ │
│ │ │                  │   <class 'OSError'>: <class 'httpcore.ConnectError'>,                  │         │ │
│ │ │                  │   <class 'anyio.BrokenResourceError'>: <class 'httpcore.ConnectError'> │         │ │
│ │ │                  }                                                                        │         │ │
│ │ │           host = 'localhost'                                                              │         │ │
│ │ │  local_address = None                                                                     │         │ │
│ │ │           port = 9997                                                                     │         │ │
│ │ │           self = <httpcore.AnyIOBackend object at 0x10e817b60>                            │         │ │
│ │ │ socket_options = []                                                                       │         │ │
│ │ │         stream = <Future finished result=None>                                            │         │ │
│ │ │        timeout = 5.0                                                                      │         │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯         │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/.local/share/uv/python/cpython-3.13-macos-aarch64-none/lib/python3.13/contextlib.py │ │
│ │ :148 in __exit__                                                                                      │ │
│ │                                                                                                       │ │
│ │   145 │   def __exit__(self, typ, value, traceback):                                                  │ │
│ │   146 │   │   if typ is None:                                                                         │ │
│ │   147 │   │   │   try:                                                                                │ │
│ │ ❱ 148 │   │   │   │   next(self.gen)                                                                  │ │
│ │   149 │   │   │   except StopIteration:                                                               │ │
│ │   150 │   │   │   │   return False                                                                    │ │
│ │   151 │   │   │   else:                                                                               │ │
│ │                                                                                                       │ │
│ │ ╭──────────────────────────────── locals ─────────────────────────────────╮                           │ │
│ │ │      self = <contextlib._GeneratorContextManager object at 0x10e7d3930> │                           │ │
│ │ │ traceback = None                                                        │                           │ │
│ │ │       typ = None                                                        │                           │ │
│ │ │     value = None                                                        │                           │ │
│ │ ╰─────────────────────────────────────────────────────────────────────────╯                           │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/anyio/_core/_tasks.py:11 │ │
│ │ 7 in fail_after                                                                                       │ │
│ │                                                                                                       │ │
│ │   114 │   """                                                                                         │ │
│ │   115 │   current_time = get_async_backend().current_time                                             │ │
│ │   116 │   deadline = (current_time() + delay) if delay is not None else math.inf                      │ │
│ │ ❱ 117 │   with get_async_backend().create_cancel_scope(                                               │ │
│ │   118 │   │   deadline=deadline, shield=shield                                                        │ │
│ │   119 │   ) as cancel_scope:                                                                          │ │
│ │   120 │   │   yield cancel_scope                                                                      │ │
│ │                                                                                                       │ │
│ │ ╭───────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │
│ │ │ cancel_scope = <anyio._backends._asyncio.CancelScope object at 0x10e874230>                       │ │ │
│ │ │ current_time = <bound method AsyncIOBackend.current_time of <class                                │ │ │
│ │ │                'anyio._backends._asyncio.AsyncIOBackend'>>                                        │ │ │
│ │ │     deadline = 529897.813                                                                         │ │ │
│ │ │        delay = 5.0                                                                                │ │ │
│ │ │       shield = False                                                                              │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │                                                                                                       │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio │ │
│ │ .py:467 in __exit__                                                                                   │ │
│ │                                                                                                       │ │
│ │    464 │   │   assert self._host_task is not None                                                     │ │
│ │    465 │   │   host_task_state = _task_states.get(self._host_task)                                    │ │
│ │    466 │   │   if host_task_state is None or host_task_state.cancel_scope is not self:                │ │
│ │ ❱  467 │   │   │   raise RuntimeError(                                                                │ │
│ │    468 │   │   │   │   "Attempted to exit a cancel scope that isn't the current tasks's "             │ │
│ │    469 │   │   │   │   "current cancel scope"                                                         │ │
│ │    470 │   │   │   )                                                                                  │ │
│ │                                                                                                       │ │
│ │ ╭──────────────────────────────────── locals ────────────────────────────────────╮                    │ │
│ │ │        exc_type = None                                                         │                    │ │
│ │ │         exc_val = None                                                         │                    │ │
│ │ │ host_task_state = <anyio._backends._asyncio.TaskState object at 0x10e853e90>   │                    │ │
│ │ │            self = <anyio._backends._asyncio.CancelScope object at 0x10e874230> │                    │ │
│ │ ╰────────────────────────────────────────────────────────────────────────────────╯                    │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope        │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions