Skip to content

[BUG] Receiving time out when I start my code, besides that my internet connection is stable #4019

@rafaelribeiroo

Description

@rafaelribeiroo

Steps to Reproduce

  1. when my code reaches line
    await bot.send_message(chat_id=config['TELEGRAM']['chat_id'], text=txt, read_timeout=120, write_timeout=120, connect_timeout=120)
  2. returns timed out each time I run
  3. already follow these instructions

Expected behaviour

Bot should notify my group telegram

Actual behaviour

Time out error is shown.

Operating System

Linux Mint 21.2 x86_64

Version of Python, python-telegram-bot & dependencies

python-telegram-bot 20.6
Bot API 6.9
Python 3.11.4 (main, Nov  9 2023, 23:30:50) [GCC 11.4.0]

Relevant log output

Traceback (most recent call last):
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/anyio/_core/_tasks.py", line 115, in fail_after
    yield cancel_scope
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp
    stream: anyio.abc.ByteStream = await anyio.connect_tcp(
                                   ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/anyio/_core/_sockets.py", line 217, in connect_tcp
    async with create_task_group() as tg:
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 674, in __aexit__
    raise cancelled_exc_while_waiting_tasks
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 654, in __aexit__
    await asyncio.wait(self.cancel_scope._tasks)
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/asyncio/tasks.py", line 418, in wait
    return await _wait(fs, timeout, return_when, loop)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/asyncio/tasks.py", line 525, in _wait
    await waiter
asyncio.exceptions.CancelledError: Cancelled by cancel scope 7fba716982d0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
    yield
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 113, in connect_tcp
    with anyio.fail_after(timeout):
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/anyio/_core/_tasks.py", line 118, in fail_after
    raise TimeoutError
TimeoutError

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

Traceback (most recent call last):
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
    yield
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_transports/default.py", line 366, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 268, in handle_async_request
    raise exc
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 251, in handle_async_request
    response = await connection.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request
    raise exc
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_async/connection.py", line 124, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp
    return await self._backend.connect_tcp(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 112, in connect_tcp
    with map_exceptions(exc_map):
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectTimeout

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

Traceback (most recent call last):
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/request/_httpxrequest.py", line 219, in do_request
    res = await self._client.request(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_client.py", line 1530, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_client.py", line 1617, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_client.py", line 1645, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_client.py", line 1682, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_client.py", line 1719, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_transports/default.py", line 365, in handle_async_request
    with map_httpcore_exceptions():
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectTimeout

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

Traceback (most recent call last):
  File "/workspace/marketplace-monitor/tests.py", line 24, in <module>
    loop.run_until_complete(send_message('Testing'))
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/workspace/marketplace-monitor/tests.py", line 14, in send_message
    await bot.send_message(
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/_bot.py", line 519, in decorator
    result = await func(self, *args, **kwargs)  # skipcq: PYL-E1102
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/_bot.py", line 840, in send_message
    return await self._send_message(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/_bot.py", line 697, in _send_message
    result = await self._post(
             ^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/_bot.py", line 607, in _post
    return await self._do_post(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/_bot.py", line 635, in _do_post
    return await request.post(
           ^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/request/_baserequest.py", line 168, in post
    result = await self._request_wrapper(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/request/_baserequest.py", line 288, in _request_wrapper
    raise exc
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/request/_baserequest.py", line 278, in _request_wrapper
    code, payload = await self.do_request(
                    ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ribeiroorafael/.pyenv/versions/3.11.4/lib/python3.11/site-packages/telegram/request/_httpxrequest.py", line 236, in do_request
    raise TimedOut from err
telegram.error.TimedOut: Timed out

Additional Context

Im using Bot() directly instead of Application.builder(), it always works like a charm, but yesterday this error came to my automated routines.

Code below results in error too

from asyncio import get_event_loop
from telegram import Bot
from configparser import ConfigParser

config = ConfigParser()
config.read('config.ini')
day = config['FACEBOOK']['interval']

bot = Bot(config['TELEGRAM']['token'])


async def send_message(txt):
    from pdb import set_trace; set_trace()
    await bot.send_message(
        chat_id=config['TELEGRAM']['chat_id'],
        text=txt,
        read_timeout=60,
        write_timeout=60,
        connect_timeout=60
    )

loop = get_event_loop()
# if not ad['previous_price']:
loop.run_until_complete(send_message('Testing'))

Also, my ping is fine

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions