When we have a sensex expiry the nifty options data is not emitted to us on time….dont know what the bug but we get the data only at the exact end of the second ….
The data that we receive through websocket version 3 is incomplete. Your backend emits only data after exact 2000 mili seconds or 1000 milli seconds.it is supposed to be like this. Look at the diff it is suppose to be any random number as it is in this case
30.2 2025-09-17 10:18:22.925 Side 1 Diff 1010
30.2 2025-09-17 10:18:22.935 Side 1 Diff 10
30.25 2025-09-17 10:18:23.632 Side 1 Diff 697
30.2 2025-09-17 10:18:24.161 Side 1 Diff 529
30.25 2025-09-17 10:18:26.164 Side 1 Diff 2003
30.15 2025-09-17 10:18:26.837 Side 1 Diff 673
30.05 2025-09-17 10:18:27.401 Side 1 Diff 564
30.2 2025-09-17 10:18:28.524 Side 1 Diff 1123
30.3 2025-09-17 10:18:28.803 Side 1 Diff 279
But instead we only receive the data when the second exactly end like 1000th millisecond. and data is also incomplete. Pick any option whose volume is around 15cr+ and see the data emitted by your backend. we hardly receive 10 ticks in the span of 25-30 seconds. And thats just not possible looking at the volume. I also tried today in the morning…in the first 15 minutes only the problem was seen again.
I don’t think it is time issue, I detailed here ( Web socket live feeds are getting 2-3 seconds delay - #2 by lokesh_41082232 )
But, due to inconsistent data calculations at Upstox receiver side, the time is getting goofed up. Here is today’s data of sample instrument each from Sensex, Nifty & Bank Nifty:
Top Image: Sensex
currentTs payload carries future LTT if there are multiple trades within a second. Good thing is LTT is in ms. I’ve been asking the team to take this on priority. The calculations will go wrong if anyone is relying on this data.
Middle Image & Last Image: Nifty & BankNifty
ltt is in seconds now (removed ms granularity for some reason) and ticks getting messed-up. Again, sorry to say that this data is unusable and have to make lot of adjustments during calculations.