- Notifications
You must be signed in to change notification settings - Fork5.7k
Description
Steps to Reproduce
- Start a bot without network connectivity
Expected behaviour
The bot should retry requests such asself.get_me()
until network connectivity is present
Actual behaviour
The bot directly crashes and the program exists without any way to have it automatically retried (similar to what_network_loop_retry
does)
Operating System
Fedora 41 Server
Version of Python, python-telegram-bot & dependencies
python-telegram-bot 21.9Bot API 8.1Python 3.13.1 (main, Dec 9 2024, 00:00:00) [GCC 14.2.1 20240912 (Red Hat 14.2.1-3)]
Relevant log output
Traceback (mostrecentcalllast):File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_transports/default.py",line101,inmap_httpcore_exceptionsyieldFile"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_transports/default.py",line394,inhandle_async_requestresp=awaitself._pool.handle_async_request(req)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpcore/_async/connection_pool.py",line256,inhandle_async_requestraiseexcfromNoneFile"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpcore/_async/connection_pool.py",line236,inhandle_async_requestresponse=awaitconnection.handle_async_request(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^pool_request.request^^^^^^^^^^^^^^^^^^^^ )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpcore/_async/connection.py",line101,inhandle_async_requestraiseexcFile"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpcore/_async/connection.py",line78,inhandle_async_requeststream=awaitself._connect(request)^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpcore/_async/connection.py",line124,in_connectstream=awaitself._network_backend.connect_tcp(**kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpcore/_backends/auto.py",line31,inconnect_tcpreturnawaitself._backend.connect_tcp(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<5lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpcore/_backends/anyio.py",line113,inconnect_tcpwithmap_exceptions(exc_map):~~~~~~~~~~~~~~^^^^^^^^^File"/usr/lib64/python3.13/contextlib.py",line162,in__exit__self.gen.throw(value)~~~~~~~~~~~~~~^^^^^^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpcore/_exceptions.py",line14,inmap_exceptionsraiseto_exc(exc)fromexchttpcore.ConnectError: [Errno-3]TemporaryfailureinnameresolutionTheaboveexceptionwasthedirectcauseofthefollowingexception:Traceback (mostrecentcalllast):File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/request/_httpxrequest.py",line293,indo_requestres=awaitself._client.request(^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<6lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_client.py",line1540,inrequestreturnawaitself.send(request,auth=auth,follow_redirects=follow_redirects)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_client.py",line1629,insendresponse=awaitself._send_handling_auth(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<4lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_client.py",line1657,in_send_handling_authresponse=awaitself._send_handling_redirects(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<3lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_client.py",line1694,in_send_handling_redirectsresponse=awaitself._send_single_request(request)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_client.py",line1730,in_send_single_requestresponse=awaittransport.handle_async_request(request)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_transports/default.py",line393,inhandle_async_requestwithmap_httpcore_exceptions():~~~~~~~~~~~~~~~~~~~~~~~^^File"/usr/lib64/python3.13/contextlib.py",line162,in__exit__self.gen.throw(value)~~~~~~~~~~~~~~^^^^^^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/httpx/_transports/default.py",line118,inmap_httpcore_exceptionsraisemapped_exc(message)fromexchttpx.ConnectError: [Errno-3]TemporaryfailureinnameresolutionTheaboveexceptionwasthedirectcauseofthefollowingexception:Traceback (mostrecentcalllast):File"/opt/poll-forwarder/main.py",line80,in<module>main()~~~~^^File"/opt/poll-forwarder/main.py",line76,inmainapplication.run_polling()~~~~~~~~~~~~~~~~~~~~~~~^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/ext/_application.py",line868,inrun_pollingreturnself.__run(~~~~~~~~~~^updater_coroutine=self.updater.start_polling(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<12lines>...stop_signals=stop_signals,^^^^^^^^^^^^^^^^^^^^^^^^^^ )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/ext/_application.py",line1069,in__runloop.run_until_complete(self.initialize())~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^File"/usr/lib64/python3.13/asyncio/base_events.py",line720,inrun_until_completereturnfuture.result()~~~~~~~~~~~~~^^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/ext/_application.py",line487,ininitializeawaitself.bot.initialize()File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/ext/_extbot.py",line300,ininitializeawaitsuper().initialize()File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/_bot.py",line763,ininitializeawaitself.get_me()File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/ext/_extbot.py",line1957,inget_mereturnawaitsuper().get_me(^^^^^^^^^^^^^^^^^^^^^ ...<5lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/_bot.py",line895,inget_meresult=awaitself._post(^^^^^^^^^^^^^^^^^ ...<6lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/_bot.py",line619,in_postreturnawaitself._do_post(^^^^^^^^^^^^^^^^^^^^ ...<6lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/ext/_extbot.py",line354,in_do_postreturnawaitsuper()._do_post(^^^^^^^^^^^^^^^^^^^^^^^ ...<6lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/_bot.py",line648,in_do_postresult=awaitrequest.post(^^^^^^^^^^^^^^^^^^^ ...<6lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/request/_baserequest.py",line202,inpostresult=awaitself._request_wrapper(^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<7lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/request/_baserequest.py",line334,in_request_wrappercode,payload=awaitself.do_request(^^^^^^^^^^^^^^^^^^^^^^ ...<7lines>... )^File"/opt/poll-forwarder/.venv/lib64/python3.13/site-packages/telegram/request/_httpxrequest.py",line317,indo_requestraiseNetworkError(f"httpx.{err.__class__.__name__}:{err}")fromerrtelegram.error.NetworkError:httpx.ConnectError: [Errno-3]Temporaryfailureinnameresolution
Additional Context
When rebooting server or VMs it is common that services start up before full network connectivity is available (e.g. DNS). In these cases the bot should retry initialization instead of directly crashing.
Metadata
Metadata
Assignees
Labels
No labels