Common MetaTrader Error Messages, Explained

A lookup guide to the most common MT4 and MT5 error messages, explaining what each one means and the specific setting or condition that caused your trade to be rejected.

Every MT4 or MT5 trader eventually sends an order and gets a red error line instead of a filled trade. The wording is often cryptic: "Not enough money", "Invalid stops", "Trade context busy", "Market closed". These metatrader error messages aren't random — each one maps to a specific condition on the broker's server or inside the terminal itself, and once you know what triggers it, the fix is usually quick.

This matters whether you're clicking buy manually, running an EA, or copying signals from a Telegram channel into an MT4/MT5 account. The order gets rejected for the same underlying reasons in all three cases — margin, stop distance, price movement, timing, or lot size — the only difference is who's watching the screen when it happens. Trading always carries the risk of loss, and no error explanation changes that; what it can do is stop you mistaking a mechanical rejection for something more serious.

Below is a walk-through of the errors you'll hit most often, why they happen even when your account "should" have enough money or your stop "looks" fine, and what to actually change to get the trade through.

This is the single most common order-rejection error, and the most misunderstood. Traders read "not enough money in forex" and check their balance, see plenty sitting there, and assume it's a glitch. It isn't — the check isn't against balance, it's against free margin, and the two can differ enormously once you factor in leverage and contract size.

Here's the arithmetic for a 1-lot XAUUSD position:

Notice the balance ($3,000) is irrelevant to the decision; only free margin matters. The fix is one of: reduce the lot size, close or hedge an existing position to release margin, add funds, or check whether the account is on a lower leverage tier than you assumed. If you're sizing positions based on a percentage of equity rather than a fixed lot, recalculating with current free margin — not balance — avoids this error before you send the order.

"Invalid Stops" and Stop-Distance Errors

Invalid stops mt4 errors come from a broker-enforced minimum distance between your stop loss/take profit and the current price, often called the stop level, plus a related freeze level that blocks modifying orders too close to price during execution.

Say a broker enforces a minimum stop distance of 10 pips on gold. Price is trading at 2000.00 and you place a sell with a stop loss at 2000.50 — a 5-pip distance. That's inside the 10-pip minimum, so the platform rejects the order with "Invalid stops" even though the price and direction are perfectly valid.

To check the actual limit before you place the order:

Because this figure is set by the broker and can differ between symbols and account types, it's worth checking the specification again if you move accounts or brokers, rather than assuming a stop distance that worked before will always work. If you're placing stops programmatically or via a copier, building in a small buffer beyond the published minimum is safer than sending the exact figure.

Requotes and "Off Quotes" Price Errors

A requote isn't a rejection in the usual sense — it's the broker saying "the price you asked for has already moved, here's the current one, do you accept it?" The requote meaning in forex trading is tied to how dealing-desk execution works: your order request travels to the server, but between you clicking and the server processing it, the market may have ticked. On instruments that move fast, like gold during a data release, that gap is enough for the broker to no longer be able to fill at your original price.

For example: you send a buy at 2000.00, but by the time the request reaches the server the bid/ask has shifted to 2000.30. Instead of filling you at a worse price silently, the platform returns a requote and asks whether you'll accept the new quote.

This is largely a Market Execution vs Instant Execution issue. Under Instant Execution (more common on MT4 with dealing-desk brokers), requotes are explicit. Under Market Execution (the MT5 norm and increasingly common on MT4), the broker instead fills you at the best available price within your allowed tolerance — controlled by the deviation or slippage setting, measured in points. Setting a wider deviation reduces requotes/off-quotes rejections but means your fill price can move further from what you expected; setting it too tight increases the chance of rejection during fast moves.

"Trade Context Busy" and EA Conflicts (MT4)

Trade context busy fix requests are almost always an MT4-specific issue, and it catches people running more than one EA, or an EA alongside a copier, on the same terminal. MT4's trade execution is single-threaded — the terminal can only process one trade request at a time across the whole platform, not per chart or per EA.

The classic scenario: two EAs are attached to different charts on the same MT4 terminal. Both generate a signal on the same tick and both try to send an order simultaneously. One gets through; the other is told the trade context is busy and fails, because MT4 was still occupied processing the first request.

The standard fixes are:

MT5 uses a different, multi-threaded execution model, so trade context busy is largely absent there — it's one of the clearer examples of a problem that simply doesn't carry over between platform versions.

"Market Closed" and Trading-Hours Errors

Market closed mt4 errors are about the trading session defined for that symbol on the broker's server, not whether you personally think the market is open. Every symbol has scheduled trading hours, and outside them the server rejects new orders regardless of what the chart shows.

A common trigger: placing a gold order late on a Friday, close to the weekly session cutoff, or on a public holiday when that symbol's session is suspended for the day. The chart may still display a price and look tradeable, but if the server's session table has that instrument marked closed, any new order — manual or automated — comes back rejected.

A few things worth checking when this happens:

Invalid Volume and Lot Size Errors

This one shows up most often when lot size is calculated automatically — from a risk percentage, an EA's money-management formula, or a signal being converted into a lot size — rather than typed in by hand.

Every broker sets a minimum volume, a maximum volume, and a volume step for each symbol. If your calculation lands between two valid steps, or below the minimum, the order is rejected as an invalid volume.

Example: your risk-based sizing formula outputs 0.006 lots for a trade. The broker's minimum lot on that symbol is 0.01 and the step is also 0.01. 0.006 doesn't match any valid increment on that scale — it's below the minimum and isn't a clean multiple of the step — so the order is rejected outright.

The fix is to round the calculated size up to the nearest valid step (0.01 in this case) or down, depending on how strictly you want to manage risk, and to build that rounding into any automated sizing logic rather than sending the raw calculated figure. Some copier tools handle this by letting you choose the behaviour in advance — for instance, MarketSync's copy settings include an option to either skip a signal or automatically use the broker's minimum lot when the calculated size falls below it, so a trade doesn't simply fail with no fallback.

Connection and Login Errors

"No connection", "Invalid account", and login-rejected messages are grouped together because they all stop a trade before it even reaches the "not enough money" or "invalid stops" stage — the terminal can't reach the broker's server at all, or it's authenticated in a way that doesn't permit trading.

Two scenarios worth distinguishing:

If you're connecting an MT4/MT5 account for automated execution — including a copier reading Telegram signals — this distinction matters more than it first appears, because everything looks fine right up until the first trade attempt. MarketSync, for instance, requires the account's trading password specifically; an "Invalid credentials" message at connection time there usually points to an investor password or the wrong broker server having been entered, which is a separate issue from the broker-side execution errors covered above.

MetaTrader Error Messages: MT4 vs MT5 Differences

The underlying conditions are largely the same across both platforms, but the wording and, in a couple of cases, the behaviour differ enough to catch out traders moving from one to the other.

ConditionMT4MT5
Insufficient margin"Not enough money"Order rejected with a margin-related return code; wording varies by broker's implementation
Stop too close to price"Invalid stops"Same rule (Stop Level/Freeze Level), often surfaced as a rejected order with an invalid-stops return code
Concurrent EA trade requests"Trade context busy" — single-threaded, common with multiple EAsLargely absent — MT5's execution model handles concurrent requests without this specific error
Session closed"Market closed"Order rejected for the symbol's trading session; MT5 tends to show this via order status rather than a standalone dialog

The practical takeaway: mt4 error codes are often shown as a pop-up dialog with a short text string, while mt5 order rejected situations are more commonly represented as a numeric return code and status attached to the order itself, viewable in the terminal's Trade or History tabs. If you're used to reading MT4's dialog boxes, expect to check the order's details panel on MT5 instead of waiting for a message to appear.

Frequently asked questions

What does 'Off quotes' mean in MetaTrader?

"Off quotes" is closely related to a requote — it means the broker's pricing engine can't currently fill your order at any price it's willing to quote, often during extremely fast moves or thin liquidity. Unlike a requote, there's no alternative price offered; you simply need to resend the order once quoting resumes.

Why does MetaTrader say 'Trade is disabled' for a symbol?

This means the broker has switched a symbol to close-only or fully disabled trading, independent of whether the market itself is open. It's typically used around scheduled maintenance, contract rollovers, or extreme volatility events, and it affects everyone on that broker, not just your account.

Can a rejected trade still affect my account in any way?

A cleanly rejected order shouldn't open a position or move your balance, since nothing was executed. Where it can matter is indirectly — for example, if you were relying on that trade for a hedge or to close exposure and it silently fails, your actual risk exposure stays different from what you assumed.

Does MT5 use numeric error codes the same way MT4 does?

Both platforms use numeric return codes internally, but MT5 tends to expose them more consistently through order status and the Experts/Journal tabs, whereas MT4 often wraps the same information in a short text dialog. If you're scripting or running an EA, checking the numeric code directly is more reliable than parsing the displayed text on either platform.

Why do I get an error on some trades but not others with the same EA?

Most of the errors covered here are conditional on market state at the moment the order is sent — margin available, current spread, stop distance relative to price, or whether another process is mid-request. An EA with fixed logic can succeed on one tick and fail on the next simply because those conditions shifted, not because the code itself changed.

What does 'Autotrading disabled' mean and how do I turn it back on?

This means the terminal-wide autotrading toggle is switched off, which blocks all EAs and scripts from sending orders regardless of their own logic. It's turned back on via the AutoTrading button in the MT4/MT5 toolbar, and it's worth checking this first whenever an EA appears to have simply stopped trading without any error at all.

Reading the error before you resend the trade

Most of these errors are the terminal doing exactly what it's supposed to — enforcing a margin check, a stop distance, a session window, or a lot-size rule before letting an order through. The fix is rarely mysterious once you know which check failed: recalculate free margin, widen the stop, check the session clock, round the lot size, or confirm you're logged in with a trading password rather than an investor one.

If you're placing trades manually, the platform's own error text and the symbol specification will usually tell you everything you need. If you're running signals through a copier like MarketSync, the broker-side conditions described above still apply exactly as they would for a manual order — MarketSync doesn't change how the broker's margin, stop-distance, or session rules work. What MarketSync's own Logs/Journey will tell you is separate: whether a given signal was skipped by one of MarketSync's own risk rules (such as the max open trades cap or a missing stop loss), used a fallback lot size, or was passed through to the broker at all — which is useful context alongside the terminal's own error, not a replacement for understanding it.

Frequently asked questions

What does 'Off quotes' mean in MetaTrader?

"Off quotes" is closely related to a requote — it means the broker's pricing engine can't currently fill your order at any price it's willing to quote, often during extremely fast moves or thin liquidity. Unlike a requote, there's no alternative price offered; you simply need to resend the order once quoting resumes.

Why does MetaTrader say 'Trade is disabled' for a symbol?

This means the broker has switched a symbol to close-only or fully disabled trading, independent of whether the market itself is open. It's typically used around scheduled maintenance, contract rollovers, or extreme volatility events, and it affects everyone on that broker, not just your account.

Can a rejected trade still affect my account in any way?

A cleanly rejected order shouldn't open a position or move your balance, since nothing was executed. Where it can matter is indirectly — for example, if you were relying on that trade for a hedge or to close exposure and it silently fails, your actual risk exposure stays different from what you assumed.

Does MT5 use numeric error codes the same way MT4 does?

Both platforms use numeric return codes internally, but MT5 tends to expose them more consistently through order status and the Experts/Journal tabs, whereas MT4 often wraps the same information in a short text dialog. If you're scripting or running an EA, checking the numeric code directly is more reliable than parsing the displayed text on either platform.

Why do I get an error on some trades but not others with the same EA?

Most of the errors covered here are conditional on market state at the moment the order is sent — margin available, current spread, stop distance relative to price, or whether another process is mid-request. An EA with fixed logic can succeed on one tick and fail on the next simply because those conditions shifted, not because the code itself changed.

What does 'Autotrading disabled' mean and how do I turn it back on?

This means the terminal-wide autotrading toggle is switched off, which blocks all EAs and scripts from sending orders regardless of their own logic. It's turned back on via the AutoTrading button in the MT4/MT5 toolbar, and it's worth checking this first whenever an EA appears to have simply stopped trading without any error at all.