How to fix an 'order rejected: RMS' error on Zerodha
When Kite rejects an order with a message beginning “RMS:”, Zerodha’s internal Risk Management System has blocked the order before it reached the exchange. RMS is a pre-trade validation engine that checks margin, position limits, scrip restrictions, OI caps, and other broker-level risk parameters. The sub-code that follows “RMS:” identifies the specific check that failed.
Unlike exchange-level rejections (which carry NSE or BSE error codes), RMS rejections are issued by Zerodha’s servers. The exchange never processes a RMS-rejected order, so there is no exchange acknowledgement number for such orders.
Conflict-of-interest disclosure. This guide is published by WebNotes Editorial Team for informational purposes only. WebNotes has no commercial relationship with Zerodha, NSE, or BSE.
Prerequisites
- Active Zerodha account with Kite access.
- Familiarity with the product codes used on Kite: CNC, MIS, NRML, MTF.
- Access to the Zerodha Margin Calculator (zerodha.com/margin-calculator) for margin-related sub-codes.
Step 1: Identify the full RMS sub-code
Open the Orders tab on Kite web or the Kite mobile app. Locate the rejected order (status: Rejected). Click or tap the row to expand the detail panel. The Reason field contains the full RMS message, for example:
“RMS: Margin Exceeds, Required: 45230.00, Available: 12000.00, Segment: NSE-FO”
“RMS: Position Limit Exceeded for this UCC”
“RMS: Scrip is in banned list for [product code] orders”
Copy or write down the exact text. The sub-code is the phrase immediately after “RMS:” up to any comma or the end of the string.
Step 2: Match the sub-code and apply the remedy
The table below covers the most commonly encountered RMS sub-codes.
Margin Exceeds
What it means. Your available margin in the relevant segment is below the minimum required for the order. See How to fix an insufficient-margin error on Zerodha for the detailed resolution procedure, including how to add funds, pledge collateral, or reduce position size.
Position Limit Exceeded
What it means. You have hit Zerodha’s or the exchange’s per-client position limit for that instrument. Exchanges set client-level position limits (in number of lots or notional value) for derivative instruments, particularly in the F&O segment. Zerodha may also set tighter internal limits.
Remedy.
- Check your current open positions in the Positions tab of Kite.
- If you hold existing open positions in the same instrument, squaring off one or more of them reduces your gross position below the limit.
- If you believe you are within the exchange limit but still hitting the rejection, the limit may be set by Zerodha at the broker level. Contact Zerodha support to confirm the applicable limit for your client ID.
OI Limit Reached / OI Exceeded
What it means. Exchanges impose market-wide OI (Open Interest) limits on individual derivative contracts. When the market-wide OI reaches 95% of the exchange-prescribed limit, new long positions in futures or fresh option buy orders are blocked. When OI crosses 100%, all new positions (except close-only orders) are blocked.
Remedy.
- OI limits are reported in real time on the NSE and BSE websites.
- You can still place orders to close (square off) existing positions, as close-only orders are permitted even at the OI limit.
- New positions can only be opened when OI drops below the threshold following other participants closing their positions. This is typically not within your direct control.
- Switching to an instrument in a different expiry (if the near-month OI is saturated but the far-month is not) is one alternative.
Scrip Blocked / Scrip Banned
What it means. Zerodha has blocked trading in this specific instrument in the relevant product code or segment. This commonly happens when:
- The instrument is in the F&O ban period (MWPL exceeded; see NSE’s daily ban list).
- Zerodha has suspended trading in the scrip due to surveillance action, circuit-filter restrictions, or regulatory directive.
- The instrument is restricted to close-only orders.
Remedy.
- Check whether the instrument is on the NSE F&O ban list for that day.
- If in the ban period: only close-out orders are allowed. Square off existing positions; do not attempt to create new ones.
- If the scrip is blocked by Zerodha for another reason, contact Zerodha support for clarification. Zerodha occasionally restricts highly illiquid or ASM/GSM-listed securities.
MTF Limit Exceeded
What it means. For Margin Trading Facility (MTF) orders, Zerodha has an internal MTF exposure ceiling per client. Exceeding it triggers this sub-code.
Remedy. Reduce existing MTF positions or repay part of the MTF funded amount through Console before placing a new MTF order.
Order Value Exceeds Limit
What it means. The total order value (price × quantity) exceeds the per-order or per-day value cap set by Zerodha for your account tier.
Remedy. Split the order into smaller tranches. If you frequently transact at high order values and your account is eligible for a limit increase, contact Zerodha support.
Square-Off Order Rejected / Square-Off Only Mode
What it means. Zerodha has placed your account or the specific product code in square-off-only mode (no fresh positions allowed). This happens at the end of the MIS auto-square-off window (around 3:20 PM) or when an instrument is in the ban period.
Remedy. If near the auto-square-off time: wait for Zerodha’s system to auto-square. If this is outside that window, the instrument may be in a restricted state. Contact support.
What can go wrong
Sub-code not listed here. RMS sub-codes occasionally include Zerodha-internal labels not published in public documentation. If the rejection reason does not match any category above, take a screenshot of the full reason string and raise a support ticket.
Remedy applied but rejection recurs. Margin SPAN levels update in real time during market hours. A shortfall resolved at 10:00 AM may recur at 10:05 AM if SPAN margins increase on a volatile instrument. Maintain a buffer of 10–15% above the required margin.
Position limit does not reset after closing positions. Exchange position limits update with a short delay. After squaring off positions, wait 2–3 minutes before retrying the order to allow the exchange OI files to refresh.
Escalation path
- For any RMS rejection that cannot be resolved by the steps above, raise a ticket at support.zerodha.com with the full rejection reason text, order ID, time of rejection, and the instrument details.
- If Zerodha’s response is unsatisfactory, escalate through the Zerodha grievance redressal framework.
- For regulatory violations (e.g., an incorrect ban period enforcement), contact SEBI SCORES at scores.sebi.gov.in.
Related guides
- How to fix an insufficient-margin error on Zerodha
- How to fix a freeze-quantity rejection on Zerodha
- How to fix a price-band rejection on Zerodha
- How to fix a circuit-limit rejection on Zerodha
- Zerodha grievance redressal
References
- NSE India, “F&O Ban Period, Market Wide Position Limit Monitor,” nseindia.com.
- NSE India, “SPAN Risk Parameter Files,” nseindia.com.
- SEBI, “Risk Management Framework for Derivatives,” SEBI/DNPD circular series.
- Zerodha Support, “What does ‘RMS: Order Rejected’ mean?” support.zerodha.com.
- Zerodha Z-Connect Blog, “Understanding position limits and OI limits in F&O,” zerodha.com/z-connect.