GTT order limitations and rejection reasons
A GTT (Good Till Triggered) order on Zerodha Kite is a broker-stored conditional instruction that releases a single regular limit order to the exchange when your trigger price is touched, and it is rejected when that released order fails validation, most often for insufficient funds, a freeze-quantity breach, an ineligible or blocked scrip, or an expired contract; because the GTT is not lodged at the exchange and fires only once, it is best-effort rather than guaranteed. The distinction that trips up traders is that a GTT can pass placement-time checks today and still be rejected at trigger time months later, when the funds, eligibility, and exchange limits are re-evaluated. This article documents the instrument-eligibility, quantity, funds, and structural limits, the specific rejection messages, and the reason a GTT should be treated as a convenience layer, not a certainty.
The GTT reference article covers the product, GTT validity rules on Kite covers the expiry window, and why a GTT triggered but did not execute covers the non-fill case specifically. This page is the limitations-and-rejection companion.
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.
Rejection at trigger time, not placement time
The most important structural fact is that a GTT is validated twice, and the two checks are separate. At placement, Zerodha accepts the GTT with light validation: it does not check whether you have the funds for a buy or the shares for a sell, and it stores the order on its servers. The hard validation happens at trigger time, when the GTT fires and the released limit order is submitted to the exchange. That released order is checked against your live funds, the exchange’s current freeze limit, the scrip’s trading status, and the contract’s validity, and any failure there produces a rejection.
This is why a GTT accepted in January can be rejected in June. The conditions that matter, your account balance, the scrip’s surveillance status, the contract’s existence, the exchange freeze quantity, are evaluated when the order fires, not when you set it up. A trader who placed a buy GTT and later spent the cash on other trades will see the GTT trigger and the released buy limit order rejected for RMS reasons, with the GTT marked triggered but no position taken.
Funds and holdings at trigger time
A buy GTT needs sufficient funds when it fires; a sell GTT needs the shares in the demat or the open position. Zerodha does not reserve funds at placement, so a buy GTT does not block the cash, and a trader who depletes the balance before the trigger gets a rejection on the released order. The fix is to maintain a buffer covering pending buy GTTs, or to set an alert so funds are topped up before a near-trigger GTT can fire.
A sell GTT carries the mirror risk. If you sold part of the holding after setting a sell GTT for the full quantity, the triggered sell can exceed the shares you still hold, producing a short-delivery situation or a rejection, depending on the shortfall. The discipline is to modify or cancel the GTT whenever you change the underlying position, covered in how to modify a GTT on Kite , so the GTT quantity always matches what you hold.
Instrument eligibility
GTT is not available on every instrument, and a GTT placed on an ineligible one is rejected when it triggers even though placement accepted it. The eligible set is equity cash on the NSE and BSE , and equity and index F&O, on the MTF, CNC , and NRML product types. GTT is not offered on the currency segment. A GTT on a contract Zerodha does not allow for trading at the moment it fires is rejected at that point.
Surveillance and trading-status changes are a frequent eligibility trap. A scrip that was freely tradable when you set the GTT can move into a blocked or restricted list, ASM , GSM , trade-to-trade , or a Zerodha-imposed block, by the time the trigger fires, at which point the released order is rejected. GTTs are also cancelled outright when the underlying changes materially: an equity F&O GTT is cancelled if a corporate action affects the lot size or price, and an index F&O GTT is cancelled whenever the contract’s lot size changes. The complete disabled-and-cancelled taxonomy is in GTT disabled, cancelled, or expired .
Quantity and freeze limits
The released order must respect the exchange’s freeze quantity, the maximum quantity allowed in a single order for an instrument, set by the exchange and revised periodically, especially on derivatives. A GTT whose quantity exceeds the freeze limit at trigger time produces a freeze-quantity rejection on the released order, the same limit documented in how to fix a freeze-quantity rejection . Because the freeze limit can change between placement and trigger, a GTT sized at the limit when set can breach a tightened limit later.
The other quantity constraint is OCO consistency. In an OCO (One Cancels Other) GTT, both legs carry the same quantity because they refer to the same position. If the position size changes after the OCO is set, the surviving leg can fire for a quantity that no longer matches the holding, the sell-side mismatch described above. Equity GTTs are also not auto-adjusted for corporate actions: a sell GTT at Rs 200 on a stock that does a 2:1 split fires at Rs 200 post-split, which is effectively double the intended target, so trigger levels must be reviewed and reset after any split, bonus, or rights issue.
Single vs OCO and the 500-order cap
A GTT is either a single-trigger order, one condition firing one limit order, or an OCO, two conditions where one firing cancels the other. The single-trigger form is the building block for a buy-on-dip or a one-sided stop; the OCO form protects a held position on both sides at once, a target above and a stop below, with the unfired leg auto-cancelled when one fires. An OCO does not place both orders; it places the leg whose condition is met and cancels the other, so both a target and a stop cannot execute from one OCO.
An account can hold up to 500 active GTTs. Each single-trigger GTT and each OCO counts as one slot, so an OCO is the slot-efficient way to get two-sided protection. At the 500 ceiling, new GTTs are refused until existing ones expire, trigger, or are deleted, so a trader running individual stops across a large book should delete GTTs on closed positions to free slots, covered in how to delete a GTT on Kite .
Rejection versus non-fill
A rejection and a non-fill are different failures with the same outcome of no trade, and separating them is the key to diagnosing a GTT that did not work.
| Outcome | What happened | Typical cause |
|---|---|---|
| Rejected | The released order failed validation and never reached the order book | Insufficient funds or holdings, freeze breach, ineligible or blocked scrip, expired contract |
| Triggered, unfilled | The order reached the exchange as a limit order but did not execute | The market gapped past your limit price; no counterparty at your limit |
| Not triggered | The trigger price was never touched during market hours | Price did not reach the trigger; GTT later expired |
A rejection means the order failed a check. A non-fill, by contrast, means the limit order was accepted by the exchange but rests unexecuted because the market moved past your limit, the gap case detailed in why a GTT triggered but did not execute . Both leave the trader without the position, but the remedies differ: a rejection needs the underlying cause fixed (add funds, check eligibility, resize) before re-placing; a non-fill needs a closer limit, or an SL-M order in place of the GTT for a guaranteed market exit.
Why GTT is best-effort, not guaranteed
GTT is a broker-level facility, not an exchange-recognised order type. It sits on Zerodha’s servers, and the exchange sees nothing until the trigger fires and a limit order is submitted. Three properties make it best-effort rather than guaranteed. It depends on Zerodha’s server firing the order when the trigger is touched, so a broker-side outage can prevent it from firing even when the market reaches the trigger; a resting exchange order does not carry that dependency. It fires once and does not re-arm, so a triggered-but-unfilled GTT must be re-placed manually for the next session. And it releases a limit order, never a market order, so it will not chase the price past your limit.
These are not defects to be fixed but the design of a server-stored conditional facility, and SEBI’s intermediary-disclosure rules require brokers to make the risk of such conditional-order services clear to clients. The practical consequence for a trader is that a GTT is a convenience that removes the daily re-entry burden of a session-bound order, not a substitute for an exchange-resident order on a position that cannot be left to a single best-effort trigger. For a guaranteed intraday exit, an SL-M at the exchange is the right tool; for a long-horizon buy target or a multi-day backstop, the GTT’s persistence is worth its non-fill tail risk. The validity windows that govern how long each GTT survives are in GTT validity rules on Kite .
See also
- GTT order on Zerodha
- GTT validity rules on Kite
- Why a GTT triggered but did not execute
- How to place a GTT order on Kite
- GTT for F&O on Zerodha
- GTT as a stop-loss for options buying
- GTT stoploss invalid for index options
- How to modify a GTT on Kite
- How to delete a GTT on Kite
- GTT buy OCO on Zerodha
- Why a buy GTT was rejected
- How to fix a rejected sell GTT
- GTT disabled, cancelled, or expired
- How to fix an RMS rejection on Zerodha
- How to fix a freeze-quantity rejection
- How to fix a circuit-limit rejection on Zerodha
- ASM: additional surveillance measure on Zerodha
- GSM: graded surveillance measure on Zerodha
- T2T: trade-to-trade stocks on Zerodha
- SL-M order on Kite
- SL order on Kite
- Limit order on Kite
- Trigger vs limit price
- CNC product code
- NRML product code
- Circuit limits and price bands
- Kite
- Zerodha
- Zerodha charges
External references
- Zerodha support: Why are GTTs disabled, cancelled, expired, or rejected?
- Zerodha support: Why was the sell GTT order rejected?
- Zerodha support: Are GTT orders available for F&O contracts?
- Zerodha support: What is the validity of a GTT order?
- Zerodha GTT terms and conditions
References
- Zerodha support, Why are GTTs disabled, cancelled, expired, or rejected? (as of 21 June 2026).
- Zerodha support, Why was the sell Good Till Triggered (GTT) order rejected? (as of 21 June 2026).
- Zerodha support, Are Good Till Triggered (GTT) orders available for futures and options (F&O) contracts? (as of 21 June 2026).
- Zerodha support, What is the validity of a GTT order? (as of 21 June 2026).
- SEBI circular on conditional order facilities and broker-client disclosure obligations, MIRSD series.