Why a rejected order does not appear in the order book on Zerodha
A rejected order is absent from the Kite order book because Zerodha added a pre-trade validation layer that rejects a non-qualifying order before it is sent to the exchange, and an order that never reached the exchange has no row in the order book; its rejection reason instead appears in the order status notification on Kite. This is the documented behaviour for orders blocked by Zerodha’s own checks, and it is why a trader who rejected an order seconds ago cannot find it under the Orders tab.
Two separate mechanisms produce a “missing” order, and confusing them sends traders looking in the wrong place. The first is a pre-trade rejection by Zerodha’s risk system: the order is killed inside Zerodha before it ever travels to the National Stock Exchange or the Bombay Stock Exchange , so it cannot appear in an order book that lists only orders the exchange acknowledged. The second is a day order that did execute or sit in the book during the session, then left the live book at the close because all open day orders are cancelled at end of day. This article separates the two, shows exactly where Kite records the rejection reason, and points to the order log and Console reports that hold the history once the live book has cleared.
Conflict-of-interest disclosure. This guide is published by the WebNotes Editorial Team for informational purposes and is written independently. WebNotes operates a Zerodha account-opening referral programme, disclosed on the pages that carry the referral link; this guide does not carry it and earns no referral commission from the procedure described here.
What the order book actually lists
The order book on Kite, the Orders tab, lists orders that Zerodha forwarded to the exchange and for which the exchange returned a status: open, complete, cancelled, or rejected by the exchange. It is a live record of the current trading session. An order that the exchange acknowledged and then rejected does appear here, with status Rejected and an exchange-supplied reason that you read by tapping the row.
What the order book does not list is an order Zerodha stopped before sending. Zerodha states the position plainly: “You cannot find such orders in the order book as Zerodha rejects them before they are sent to the exchanges.” There is no exchange acknowledgement number for such an order, so there is nothing for the order book to display. The order existed for a fraction of a second inside Zerodha’s risk system and was discarded there.
This is the single most common reason a trader reports a “disappeared” order. The order did not disappear; it was never placed on the exchange in the first place, and the only surface that recorded it is the notification Kite raised at the moment of rejection.
Pre-trade rejections: blocked before the exchange
Zerodha runs an extra validation layer that rejects non-qualifying orders to speed up processing and to stop orders that the exchange would reject anyway. An order that fails any of these checks is blocked inside Zerodha and is never sent onward. The documented checks include the following, in Zerodha’s own wording.
- Freeze quantity. Zerodha “validates F&O orders higher than the freeze quantity.” The exchange sets a per-order freeze quantity for each derivative; an order above it is rejected pre-trade rather than sliced. See how to fix a freeze-quantity rejection .
- Intraday orders. Zerodha “validates intraday orders for stocks on NSE and BSE that are not allowed for MIS or CO.” A stock in a restricted surveillance category cannot take a MIS or cover order ; only a delivery CNC order is allowed.
- Trigger price. Zerodha “validates orders with trigger prices lower than LTP for buy orders and higher than LTP for sell orders.” A stop-loss trigger on the wrong side of the last traded price is rejected. See trigger price versus limit price .
- Market orders on stock options. Zerodha “blocks market orders on stock options due to illiquidity.” A market order on an illiquid single-stock option is rejected; place a limit order instead.
- After-market orders. Zerodha “blocks AMO orders placed between 9:00 AM and 4:00 PM for EQ and CDS, and 9:10 AM and 3:45 PM for FO.” An after-market order entered during live market hours is rejected, because an AMO is meant for the closed window.
- Far-away strike price. A far-from-theoretical-price option order, “if the order is placed outside the theoretical price for contracts,” is rejected. See how to fix a theoretical-price rejection .
Every one of these is a pre-trade rejection. The order is blocked before the exchange, so none of them produces an order-book row. The reason for each shows only in the order status notification.
Where the rejection reason is recorded
For a pre-trade rejection, the reason lives in one place: the order status notification on Kite. Zerodha states “you can see the rejection reason in the order status notification.” On the Kite app and on Kite web , this is the toast or banner that appears the instant the order is rejected, and it is also retained in the notifications list for the session. If you dismissed the notification, open the notifications panel to read it again.
For an order that reached the exchange and was rejected there, the reason is in two places: the order status notification at the moment of rejection, and the Orders tab row, which shows status Rejected. Tap or click the row to expand the detail panel and read the full reason string. An RMS rejection begins “RMS:” followed by the specific sub-code; a price-band or circuit-limit rejection carries the exchange reason. The taxonomy of these messages sits in why orders are rejected on Kite .
The order log on each order row
Kite attaches an order log to every order that reached the exchange. Open the Orders tab, tap the order, and within the detail panel the order log lists each state change with its timestamp: received, open, modified, and the terminal state of complete, cancelled, or rejected. For a rejected order, the log records the rejection and its reason at the timestamp the exchange returned it.
The order log is the audit trail for an order’s life inside a single session. It is the right surface when you need to know not just that an order was rejected, but exactly when each state change happened, which matters when you are reconstructing a sequence of modifications or contesting an execution. A pre-trade rejection that never reached the exchange has no order log, because the log records exchange-side states; for those, the notification is the only record.
Why an order vanishes after end of day
A separate “missing order” pattern has nothing to do with rejection. A day order, the default validity on Kite, is valid only for the session in which it is placed. All open day orders are cancelled at the close of the session. So an open buy limit you placed below the market that did not trigger during the day is not carried to the next morning; it leaves the live order book at the close. This is standard exchange behaviour for day orders, not a fault.
If you want an order to persist across sessions until a price is reached, the instrument for that is not a day order but a good-till-triggered order , which Zerodha holds for up to one year and places only when its trigger condition is met. See how to place a GTT order on Kite and order validity types for the distinction between a day order, an IOC order, and a GTT. A GTT is not a resting exchange order, so it too is absent from the intraday order book until it triggers.
Reviewing past orders in Console
Once the live session ends and the order book clears, the durable record of your orders is in Zerodha Console , the reporting back office. Console retains dated order and trade history across sessions, so an order you cannot find in the current session’s live Orders tab, because it belonged to a previous day or was cancelled at the close, is reviewable in the Console reports. Use the order report to confirm what was placed and its terminal state, and the trade report to confirm what actually executed.
The division of labour is consistent. The Kite Orders tab and its order log are the live, in-session view. Console is the historical, cross-session archive. A pre-trade rejection that never reached the exchange is the exception that neither fully captures; for that, the order status notification at the moment of rejection is the only record, which is why reading and not dismissing the notification matters.
How to find a missing order, in order
Work the cases in sequence. First, ask whether the order was rejected the instant you placed it. If so, it was almost certainly a pre-trade rejection: open the notifications panel on Kite and read the order status notification for the reason, then fix the underlying cause from the list above and re-enter. Second, if the order sat in the book during the session and is gone now, it was a day order cancelled at the close; re-place it, or use a GTT if you want it to persist. Third, if you need a past session’s record, open the order and trade reports in Console. Fourth, if the order reached the exchange and shows Rejected in the Orders tab, tap the row, read the exchange reason, and resolve it through the matching guide.
See also
- Zerodha
- Kite by Zerodha
- Kite web
- Why orders are rejected on Kite
- How to fix an RMS rejection on Zerodha
- How to fix a price-band rejection on Zerodha
- How to fix a circuit-limit rejection on Zerodha
- How to fix a freeze-quantity rejection
- How to fix a theoretical-price rejection on Zerodha
- Maximum order modifications exceeded
- Order cannot be modified as it is being processed
- Order validity types
- GTT order on Zerodha
- How to place a GTT order on Kite
- Market order on Kite
- Limit order on Kite
- SL-M order on Kite
- Trigger price versus limit price
- CNC product code
- MIS product code
- Cover order on Zerodha
- After-market order on Zerodha
- Zerodha Console
- National Stock Exchange
- Bombay Stock Exchange
- Why you cannot buy a stock trading on the exchange
- Technical issue with the exchange on Kite
External references
- Zerodha support: why is my rejected order not displayed in the order book
- Zerodha support: Kite error messages
- Zerodha support: orders, place, modify, cancel and view
- NSE India: trading on the equities segment
- BSE India: trading rules
References
- Zerodha support, “Why is my rejected order not displayed in the order book?” (accessed 21 June 2026).
- Zerodha support, Kite error messages category, pre-trade validation reasons (accessed 21 June 2026).
- NSE India, equities trading regulations and day-order validity rules.
- SEBI (Stock Brokers) Regulations 1992, broker risk-management obligations.