kite.ltp failing with requests.exceptions.ReadTimeout on Azure Linux VM

amitjet
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)
  • Nivas
    We haven't encountered any issues on our end. However, please let us know if you encounter similar problems in the future.
  • amitjet
    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: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)
  • Nivas
    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.
Sign In or Register to comment.