Earlier, I used to get random network error on my windows pc. i always used to blame it on my pc and my internet connection. so i build my code to graciously handles this and do series of retries and it works.
Recently, I shifted my code to a Linux VM on Azure. I have started to notice same random errors on Azure as well. here is the most recent one. I am using Python. the error comes usually on trying to get LTP of a single symbol - which should be lightest of all API call to fetch data. Is there anything wrong on kite connectivity ?
here is the exception stack: Traceback (most recent call last): File "/home/azureuser/saral/zerodhaTrader.py", line 284, in get_ltp_by_token data = self.kite.ltp(symbol_token) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 611, in ltp return self._get("market.quote.ltp", params={"i": ins}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 861, in _get return self._request(route, "GET", url_args=url_args, params=params, is_json=is_json) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 916, in _request raise e File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 904, in _request r = self.reqsession.request(method, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 690, in send raise ReadTimeout(e, request=request) requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
It has not stopped. this is the latest one- hot off the server few minutes back !
(MainThread)|17:06:07: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7) Traceback (most recent call last): File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 534, in _make_request response = conn.getresponse() ^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connection.py", line 571, in getresponse httplib_response = super().getresponse() ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/http/client.py", line 1430, in getresponse response.begin() File "/usr/lib/python3.12/http/client.py", line 331, in begin version, status, reason = self._read_status() ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/http/client.py", line 292, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/socket.py", line 720, in readinto return self._sock.recv_into(b) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ssl.py", line 1251, in recv_into return self.read(nbytes, buffer) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ssl.py", line 1103, in read return self._sslobj.read(len, buffer) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TimeoutError: The read operation timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 644, in send resp = conn.urlopen( ^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 841, in urlopen retries = retries.increment( ^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/util/retry.py", line 490, in increment raise reraise(type(error), error, _stacktrace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraise raise value File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen response = self._make_request( ^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 536, in _make_request self._raise_timeout(err=e, url=url, timeout_value=read_timeout) File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 367, in _raise_timeout raise ReadTimeoutError( urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/azureuser/saral/zerodhaTrader.py", line 284, in get_ltp_by_token data = self.kite.ltp(symbol_token) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 611, in ltp return self._get("market.quote.ltp", params={"i": ins}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 861, in _get return self._request(route, "GET", url_args=url_args, params=params, is_json=is_json) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 916, in _request raise e File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 904, in _request r = self.reqsession.request(method, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 690, in send raise ReadTimeout(e, request=request) requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
(MainThread)|17:11:07: get_ltp_by_token: ReadTimeout Error in fetching LTP. Retry #1 of 10 (retry every second) (MainThread)|17:11:07: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7) Traceback (most recent call last): File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 534, in _make_request response = conn.getresponse() ^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connection.py", line 571, in getresponse httplib_response = super().getresponse() ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/http/client.py", line 1430, in getresponse response.begin() File "/usr/lib/python3.12/http/client.py", line 331, in begin version, status, reason = self._read_status() ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/http/client.py", line 292, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/socket.py", line 720, in readinto return self._sock.recv_into(b) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ssl.py", line 1251, in recv_into return self.read(nbytes, buffer) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ssl.py", line 1103, in read return self._sslobj.read(len, buffer) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TimeoutError: The read operation timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 644, in send resp = conn.urlopen( ^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 841, in urlopen retries = retries.increment( ^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/util/retry.py", line 490, in increment raise reraise(type(error), error, _stacktrace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraise raise value File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen response = self._make_request( ^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 536, in _make_request self._raise_timeout(err=e, url=url, timeout_value=read_timeout) File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 367, in _raise_timeout raise ReadTimeoutError( urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/azureuser/saral/zerodhaTrader.py", line 284, in get_ltp_by_token data = self.kite.ltp(symbol_token) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 611, in ltp return self._get("market.quote.ltp", params={"i": ins}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 861, in _get return self._request(route, "GET", url_args=url_args, params=params, is_json=is_json) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 916, in _request raise e File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 904, in _request r = self.reqsession.request(method, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 690, in send raise ReadTimeout(e, request=request)
Timeouts can occur for several reasons, such as network, firewall, or ISP connectivity issues. They may also happen if requests are sent too frequently or concurrently beyond the allowed rate limits, which can cause temporary blocking at the CDN level.
If you’re making multiple requests in a tight loop, adding a small delay between calls can help reduce the chance of timeouts and avoid hitting rate limits.
You can also set a custom connection pool when initializing the Kite Connect client. You can check out the pykiteconnect docs here.
(MainThread)|17:06:07: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
Traceback (most recent call last):
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 534, in _make_request
response = conn.getresponse()
^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connection.py", line 571, in getresponse
httplib_response = super().getresponse()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/http/client.py", line 1430, in getresponse
response.begin()
File "/usr/lib/python3.12/http/client.py", line 331, in begin
version, status, reason = self._read_status()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/http/client.py", line 292, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/socket.py", line 720, in readinto
return self._sock.recv_into(b)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/ssl.py", line 1251, in recv_into
return self.read(nbytes, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/ssl.py", line 1103, in read
return self._sslobj.read(len, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 644, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 841, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/util/retry.py", line 490, in increment
raise reraise(type(error), error, _stacktrace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraise
raise value
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 536, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 367, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/azureuser/saral/zerodhaTrader.py", line 284, in get_ltp_by_token
data = self.kite.ltp(symbol_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 611, in ltp
return self._get("market.quote.ltp", params={"i": ins})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 861, in _get
return self._request(route, "GET", url_args=url_args, params=params, is_json=is_json)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 916, in _request
raise e
File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 904, in _request
r = self.reqsession.request(method,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 690, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
(MainThread)|17:06:09: 17:06:09|NATURALGAS26FEB285PE,LTP:
17.60,ema_HIGH:18.27,ema_LOW:17.85,ST:17.84,Signal:-1,PHigh=18.60,PLow=18.25
(MainThread)|17:06:09: 17:06:09|NATURALGAS26FEB285CE,LTP: 18.10,ema_HIGH:17.89,ema_LOW:17.49,ST:17.87,Signal:0,PHigh=18.10,PLow=17.25
(MainThread)|17:11:07: get_ltp_by_token: ReadTimeout Error in fetching LTP. Retry #1 of 10 (retry every second)
(MainThread)|17:11:07: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
Traceback (most recent call last):
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 534, in _make_request
response = conn.getresponse()
^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connection.py", line 571, in getresponse
httplib_response = super().getresponse()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/http/client.py", line 1430, in getresponse
response.begin()
File "/usr/lib/python3.12/http/client.py", line 331, in begin
version, status, reason = self._read_status()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/http/client.py", line 292, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/socket.py", line 720, in readinto
return self._sock.recv_into(b)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/ssl.py", line 1251, in recv_into
return self.read(nbytes, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/ssl.py", line 1103, in read
return self._sslobj.read(len, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 644, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 841, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/util/retry.py", line 490, in increment
raise reraise(type(error), error, _stacktrace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraise
raise value
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 536, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/home/azureuser/.local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 367, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.kite.trade', port=443): Read timed out. (read timeout=7)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/azureuser/saral/zerodhaTrader.py", line 284, in get_ltp_by_token
data = self.kite.ltp(symbol_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 611, in ltp
return self._get("market.quote.ltp", params={"i": ins})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 861, in _get
return self._request(route, "GET", url_args=url_args, params=params, is_json=is_json)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 916, in _request
raise e
File "/home/azureuser/.local/lib/python3.12/site-packages/kiteconnect/connect.py", line 904, in _request
r = self.reqsession.request(method,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureuser/.local/lib/python3.12/site-packages/requests/adapters.py", line 690, in send
raise ReadTimeout(e, request=request)
If you’re making multiple requests in a tight loop, adding a small delay between calls can help reduce the chance of timeouts and avoid hitting rate limits.
You can also set a custom connection pool when initializing the Kite Connect client. You can check out the pykiteconnect docs here.