Skip to content

Bot crashed due to uncatched aiohttp exception “Temporary failure in name resolution” #6632

@kuolemaaa

Description

@kuolemaaa

Type of feature request

Other

Description of the feature you're suggesting

My internet access went down for an hour or two.
Several hours after,I noticed that the bot was offline on my server.
Checked the log (now overwritten because I restarted it) and I remember that aiohttps module complained about not able to resolve discord.com:443 with “Temporary failure in name resolution”.

Exception not catched and program stopped.

I don't think it is a good way to deal with such case. If it is possible I would suggest the good old retry with exponential backoff (configurable maybe?)

Trying to reproduce the failure I got this exception:

[2025-11-20 21:12:01] [CRITICAL] red.main: The main bot task didn't handle an exception and has crashed
Traceback (most recent call last):
  File "/data/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 1203, in _create_direct_connection
    hosts = await self._resolve_host(host, port, traces=traces)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 880, in _resolve_host
    return await asyncio.shield(resolved_host_task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 917, in _resolve_host_with_throttle
    addrs = await self._resolver.resolve(host, port, family=self._family)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/aiohttp/resolver.py", line 33, in resolve
    infos = await self._loop.getaddrinfo(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1529, in getaddrinfo
socket.gaierror: [Errno -3] Temporary failure in name resolution

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/venv/lib/python3.11/site-packages/redbot/__main__.py", line 470, in red_exception_handler
    red_task.result()
  File "/data/venv/lib/python3.11/site-packages/redbot/__main__.py", line 369, in run_bot
    await red.start(token)
  File "/data/venv/lib/python3.11/site-packages/redbot/core/bot.py", line 1298, in start
    await self.login(token)
  File "/data/venv/lib/python3.11/site-packages/discord/client.py", line 675, in login
    data = await self.http.static_login(token)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/discord/http.py", line 839, in static_login
    data = await self.request(Route('GET', '/users/@me'))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/discord/http.py", line 654, in request
    async with self.__session.request(method, url, **kwargs) as response:
  File "/data/venv/lib/python3.11/site-packages/aiohttp/client.py", line 1197, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/aiohttp/client.py", line 581, in _request
    conn = await self._connector.connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 544, in connect
    proto = await self._create_connection(req, traces, timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 944, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 1209, in _create_direct_connection
    raise ClientConnectorError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host discord.com:443 ssl:default [Temporary failure in name resolution]
[2025-11-20 21:12:01] [WARNING] red.main: Attempting to die as gracefully as possible...
[2025-11-20 21:12:01] [INFO] red.main: Shutting down from unhandled exception

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: Needs TriageThis has not been labeled or discussed for handling yet.Type: FeatureNew feature or request.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions