MT4 error 4106: Unknown symbol (ERR_UNKNOWN_SYMBOL)

The symbol name isn't known to this MT4 terminal. Brokers often use suffixes like EURUSDm, so match the exact name.

4106ERR_UNKNOWN_SYMBOL
After a fixSafe to retry?
NoCould it have executed?

What it means

You see this code in GetLastError() in MQL4, raised inside the terminal.

The name you passed doesn't match any symbol in the terminal. Names are exact.

The same instrument can have a different name at each broker, and even on each account type.

Common causes

  • A broker suffix or prefix, such as EURUSDm, EURUSD.pro or #US30.
  • A typing mistake.
  • A name copied from another broker.

How to fix it

  • List the symbols with SymbolsTotal() and SymbolName(), and match on the part you need.
  • Check that MarketInfo(sym, MODE_BID) is above 0 before trading the symbol.

Example in MQL4:

string FindSymbol(string base)
{
   for(int i = 0; i < SymbolsTotal(false); i++)
   {
      string name = SymbolName(i, false);
      if(StringFind(name, base) == 0) return name;
   }
   return "";
}
// FindSymbol("EURUSD") might return "EURUSDm" at one broker.

Is it safe to retry?

After a fix. With the right name.

Could the order have executed?

No. The terminal stopped the call before it reached the server.

How Tickwire handles it

Tickwire checks the symbol before sending on both platforms. An unknown name comes back with numericCode 4301 and nothing is sent. Read routes answer symbol_not_found.

All MetaTrader error codes

One API for MT4 and MT5

Clear trade outcomes, idempotent orders and an audit log. Read the error reference or the quickstart.