PrevClose (Code 6) packets not sent for NSE_EQ/NSE_FNO instruments in Full mode

Hi @Hardik ,

We are observing that PrevClose packets (Response Code 6) are only received for IDX_I (Index) instruments and NOT for NSE_EQ (Equity) or NSE_FNO (Derivatives) instruments when subscribed in Full mode (RequestCode 21).

Our Setup:

  • WebSocket endpoint: wss://api-feed.dhan.co?version=2&token=<JWT>&clientId=1106656882&authType=2

  • 5 WebSocket connections, 5,000 instruments each (25,000 total)

  • Subscription mode: Full (RequestCode 21)

  • Subscription time: Before market open (09:14 IST)

What we observe:

  • :white_check_mark: PrevClose (code 6) received for 28 index instruments (IDX_I segment, security IDs: 13, 14, 18, 21, 25, 27, 28, 33, 34, 40, etc.)

  • :cross_mark: PrevClose NOT received for any NSE_EQ instruments (~2,475 equities subscribed)

  • :cross_mark: PrevClose NOT received for any NSE_FNO instruments (~14,399 index derivatives + ~10,362 stock derivatives subscribed)

Expected behavior (per API docs):

“PrevClose packet arrives on EVERY subscription, any mode”

We expected PrevClose for all 25,000 subscribed instruments, but only received ~28 (all indices).

Impact:
Previous close price is critical for computing:

  • Change % (movers/gainers/losers)

  • Option Greeks baseline

  • P&L calculations

Without PrevClose for equities and derivatives, we must make ~25,000 REST API calls via /v2/marketfeed/ohlc as a fallback, which heavily consumes our Data API quota (100,000/day).

Questions:

  1. Is this the intended behavior — PrevClose only for indices in Full mode?

  2. If yes, which subscription mode (Ticker/Quote/Full) sends PrevClose for all instruments?

  3. Is there a way to receive PrevClose for all subscribed instruments in a single subscription mode?

Packet capture reference:

Received PrevClose: header=[06, 1C00, 00, 0D000000] body=[prev_close_f32, prev_oi_u32]
                    code=6, len=16, segment=0(IDX_I), secId=13

All received PrevClose packets have segment byte = 0 (IDX_I). Zero packets with segment = 1 (NSE_EQ) or 2 (NSE_FNO).

5 WebSocket connections, 5,000 instruments each (25,000 total)

May be a batch of 500 intruments at a time instead of 5000 at once may help. Additionally 9:14 am is a critical time, may be subscribing a few minutes before may help.