Error reading from Telegram updates stream
In order to let us help you better, please fill out the following fields as best you can:
I am...
- [X] Reporting a bug
- [ ] Suggesting a new feature
- [ ] Requesting help with running my bot
- [ ] Requesting help writing plugins
- [ ] Here about something else
I am running...
- Errbot version: 5.2.0
- OS version: Ubuntu cosmic
- Python version: 3.6.7
- Using a virtual environment: yes
Issue description
With the telegram backend, I'm constantly getting this error:
18:45:13 ERROR errbot.backends.telegram Error reading from Telegram updates stream: [361/32250]
Traceback (most recent call last):
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 4$
2, in _make_request
six.raise_from(e, None)
File "<string>", line 2, in raise_from
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 3$
8, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.6/http/client.py", line 1331, in getresponse
response.begin()
File "/usr/lib/python3.6/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.6/http/client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.6/socket.py", line 586, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3.6/ssl.py", line 1012, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib/python3.6/ssl.py", line 874, in read
return self._sslobj.read(len, buffer)
File "/usr/lib/python3.6/ssl.py", line 631, in read
v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/utils/request.py", line 203, in _request_wrapper
resp = self._con_pool.request(*args, **kwargs)
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 70, in re
quest
**urlopen_kw)
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 148, in r
equest_encode_body
return self.urlopen(method, url, **extra_kw)
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/poolmanager.py", line 244,
in urlopen
response = conn.urlopen(method, u.request_uri, **kw)
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 66
6, in urlopen
_stacktrace=sys.exc_info()[2])
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/retry.py", line 347, i
n increment
raise six.reraise(type(error), error, _stacktrace)
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/packages/six.py", line 686,
in reraise
raise value
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 61
7, in urlopen
chunked=chunked)
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 40
5, in _make_request
exc_cls=ReadTimeoutError)
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 32
1, in _raise_timeout
raise exc_cls(*args)
telegram.vendor.ptb_urllib3.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.telegram.org', port=443): Read timed out. (read timeout=5.0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/errbot/backends/telegram_messenger.py", line 226, in serve_once
for update in self.telegram.getUpdates(offset=offset, timeout=360):
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/bot.py", line 65, in decorator
result = func(self, *args, **kwargs)
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/bot.py", line 1975, in get_updates
result = self._request.post(url, data, timeout=float(read_latency) + float(timeout))
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/utils/request.py", line 309, in post
headers={'Content-Type': 'application/json'})
File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/utils/request.py", line 205, in _request_wrapper
raise TimedOut()
telegram.error.TimedOut: Timed out
Steps to reproduce
Just trigger any errbot with the telegram backend.
Additional info
I patched the telegram backed to call getUpdates without timeout, and it stopped happening.
Do you have the latest version of the telegram library python-telegram-bot?
Yup, I've just pip installed it.
Having the same issue with errbot 5.2.0, 5.1.3, and the pre-release version 6.0.0.a0.
having the issue, I have downgraded the telegram bot to 10.1.0 and is working fine.
Reference https://github.com/python-telegram-bot/python-telegram-bot/issues/1323
Closing, as it's an old issue and there's been multiple updates since.
There seems to also be a workaround in the noted version.