Zerodha stop-loss SL order trigger price limit price Kite order rejected

The trigger and limit price mismatch error on SL orders

From WebNotes, a public knowledge base. Last updated . Reading time ~9 min.

The trigger and limit price mismatch error on a stop-loss order means the two prices are the wrong way round for the order to be executable. On Kite , the messages “Trigger price can’t be higher than price” and “Trigger price can’t be lesser than price” both say the same thing: for a buy SL order the trigger price must sit at or below the limit price, and for a sell SL order the trigger must sit at or above the limit price. Set the prices to the correct side and the order is accepted.

A stop-loss-limit (SL) order has two prices that do different jobs. The trigger price is the level at which the dormant order activates. The limit price is the price of the order that is then released to the market. The relationship between them is not arbitrary: when the trigger fires, the limit order it releases must be marketable, so the limit has to sit on the executable side of the trigger. Get the direction wrong and the order is either rejected outright or, worse, accepted and left resting pending so it never fills.

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 two error messages mean

Kite shows one of two messages when the trigger and limit are mis-ordered.

“Trigger price can’t be higher than price” appears on a buy SL order whose trigger price is above its limit price. “Trigger price can’t be lesser than price” appears on a sell SL order whose trigger price is below its limit price. Both are the same fault seen from the two order sides: the trigger has been placed on the wrong side of the limit, so the order cannot be constructed as a valid stop-loss. The “price” in each message is the limit price you entered.

The fix is to reorder the two prices, and the rule for which way round depends on whether the SL is a buy or a sell. The trigger versus limit price reference covers the two price types in general; below is the specific relationship each SL direction requires.

The buy SL relationship: trigger at or below limit

A buy stop-loss-limit order is used to enter, or to cover a short, as the price rises through a level. The trigger price is the rising level at which you want to act. The limit price is the highest price you are willing to pay once the order activates.

For a buy SL, set the trigger price at or below the limit price.

The logic: the price is climbing towards your trigger. When it touches the trigger, the order releases a buy limit order, and for that buy to fill it must be willing to pay at least the current (rising) market price. So the limit has to be at or above the trigger, giving the released order room to execute. A common, safe setup is a trigger and a limit a few ticks apart, with the limit above the trigger to absorb the slippage as price moves through. If you instead put the limit below the trigger, the released buy limit is below the market the instant it activates and cannot fill, which is the mismatch the error blocks.

The sell SL relationship: trigger at or above limit

A sell stop-loss-limit order is the classic stop-loss on a long position: it exits as the price falls through a level. The trigger price is the falling level at which you want out. The limit price is the lowest price you are willing to accept once the order activates.

For a sell SL, set the trigger price at or above the limit price.

The logic mirrors the buy case. The price is falling towards your trigger. When it touches the trigger, the order releases a sell limit order, and for that sell to fill it must be willing to accept at most the current (falling) market price. So the limit has to be at or below the trigger. A trigger of Rs 95 with a limit of Rs 94 on a long held from Rs 100 is a valid stop: it activates at Rs 95 and sells down to Rs 94. Put the limit above the trigger and you get the textbook failure: a stock at Rs 100 with a sell trigger at Rs 95 and a limit at Rs 96 will not execute, because once the trigger fires at Rs 95 the Rs 96 sell limit sits above the market and rests unfilled.

The quieter failure: an order that rests pending

The mismatch error is the visible failure. The dangerous one is the order that is accepted but rests pending and never fills, because the limit, while on a technically allowed side, is set where the released order is not marketable at the trigger moment.

A sell SL with the limit set above the trigger is the standard example. If the platform accepts it, the order activates at the trigger but releases a limit order priced above the falling market, so it waits for the price to come back up to the limit, which on a stop-loss is exactly the move you were protecting against. The position keeps losing while the stop sits unfilled. The cure is the same relationship: on a sell SL keep the limit at or below the trigger, and give it enough gap below the trigger to fill through fast-moving prices.

This is why a stop-loss-limit needs a deliberate gap between trigger and limit, not the same value for both. A gap of zero leaves no room for the released order to fill if the price gaps through the level.

The simpler alternative: SL-M

The whole mismatch problem disappears with a stop-loss-market (SL-M) order, which takes only a trigger price and no limit price. When the trigger fires, an SL-M releases a market order that fills at the prevailing price, so there is no trigger-versus-limit relationship to get wrong. For a plain protective stop where filling matters more than the exact price, SL-M is the cleaner tool, covered at SL-M order on Kite and how to place an SL-M order on Kite .

SL-M has its own limits. It is not available on options , where the exchange restricts market-type orders, so an option stop-loss must be an SL order with correctly ordered trigger and limit prices. SL-M is also unavailable on BSE for certain segments, covered at SL-M blocked on BSE . Where SL-M is not allowed, the SL relationship in this guide is the one to get right.

The exchange permissible range on top of the relationship

Even with the trigger and limit on the correct sides, a second control caps how far apart they may sit. The exchange sets a permissible range for the difference between the limit price and the trigger price on SL orders, and an SL order whose limit and trigger are too far apart is rejected with a message that the difference is over the exchange permissible range. That control is covered at SL price outside the exchange permissible range . So an SL order has to satisfy two things at once: the correct trigger-versus-limit direction in this guide, and a gap that stays inside the exchange permissible range. Keep the limit a few ticks from the trigger on the correct side and both are satisfied.

How this differs from a far-from-LTP rejection

A trigger-limit mismatch is about the internal construction of one order, not about where the order sits relative to the market. A separate rejection, covered at why limit orders far from the LTP are rejected , blocks an order whose price is too far from the last traded price to be reasonable. An SL order can have a perfectly valid trigger-versus-limit relationship and still be refused for being far from the LTP, and the reverse. Read the message: the mismatch error names the trigger and the price, the far-from-LTP block names the distance from the LTP or the limit price protection range, and the permissible-range error names the exchange permissible range.

See also

External references

References

  1. Zerodha support, Trigger price can’t be higher than price or lesser than price (buy SL trigger at or below limit; sell SL trigger at or above limit; mis-set order rests pending) (as of 21 June 2026).
  2. Zerodha support, The difference between the limit price and trigger price for SL orders is over the exchange permissible range (exchange cap on the trigger-to-limit gap) (as of 21 June 2026).
  3. Kite user manual, Orders (stop-loss-limit and stop-loss-market order construction).

Frequently asked questions

What does 'trigger price can't be higher than price' mean on Kite?
You have set a stop-loss order’s trigger price above its limit price in a direction that cannot execute. For a buy SL the trigger must be at or below the limit price; for a sell SL the trigger must be at or above it. Swap the prices to the correct side.
What is the correct trigger and limit relationship for a buy SL order?
For a buy stop-loss-limit order, set the trigger price at or below the limit price. The trigger is where the stop activates as the price rises, and the limit is the highest price you will pay once it activates, so the limit must sit at or above the trigger.
What is the correct trigger and limit relationship for a sell SL order?
For a sell stop-loss-limit order, set the trigger price at or above the limit price. The trigger is where the stop activates as the price falls, and the limit is the lowest price you will accept once it activates, so the limit must sit at or below the trigger.
Why does my SL order rest pending and never execute?
The limit price is on the wrong side of the market when the trigger fires, so the released limit order is not marketable and waits. A stock at Rs 100 with a sell trigger at Rs 95 and a limit at Rs 96 will not execute, because the limit sits above the market once triggered.
How do I avoid the trigger and limit price mismatch entirely?
Use a stop-loss-market (SL-M) order, which takes only a trigger price and no limit price, so there is no relationship to get wrong. SL-M fills at market once triggered. It is not available on options, where you must use an SL order with correctly ordered prices.
Is the mismatch error a Zerodha rule or an exchange rule?
It reflects how a stop-loss-limit order must be constructed to be executable, and Zerodha validates the trigger-versus-limit relationship before the order is sent. A separate exchange control, the permissible range, also caps how far apart the trigger and limit may sit.

Reviewed and published by

The WebNotes Editorial Team covers Indian capital markets, payments infrastructure and retail investor procedures. Every article is fact-checked against primary sources, principally SEBI circulars and master directions, NPCI specifications and the official support documentation published by the intermediary in question. Drafts go through a second-pair-of-eyes review and a separate compliance read before publication, and revisions are tracked against the SEBI and NPCI rule changes referenced in the methodology section.

Last reviewed
Conflicts of interest
WebNotes is independent. No relationship with any broker, registrar or bank named in this article.