I am consistently getting [Relay] error: Unexpected server response: 403 when trying to connect to Kite WebSocket, even after strictly following all best practices and documentation. Here’s what I have done:
I am using a valid, active Kite Connect app (not a personal app), and all permissions are confirmed enabled. I generate a fresh access token each time via the proper login flow. I update my .env with the new access token and run only ONE process/server (no pm2/node process anywhere else, double-checked with ps aux | grep node and pm2 list on all servers). I have rigorously ensured that the access token is not being used anywhere else (no other servers, no test scripts, no local machine). My relay script is the only thing connecting, and I restart pm2 with --update-env after updating .env. I have waited several minutes after killing all processes before starting a new connection. I even tested with a minimal script (just connecting, not subscribing to many tokens), and still get 403. My app and API key are active, and support has confirmed there is no block/ban on my key or account. My VM’s public IP is: [34.60.18.15] Despite all this, I am still getting 403 errors on every WebSocket connection.
Can someone from the Zerodha dev team please:
Confirm if there are any backend restrictions or blocks on my account, app, or IP? Explain if there are any new policy changes regarding cloud/VPS usage for WebSocket? Suggest any additional debug steps?