MT4 error 4: Trade server is busy (ERR_SERVER_BUSY)

The broker's trade server was too busy to take the request. Nothing was executed; wait a little and send it again.

4ERR_SERVER_BUSY
Yes, after a waitSafe to retry?
NoCould it have executed?

What it means

You see this code in GetLastError() in MQL4, after a trade function fails on the server side.

The server couldn't accept the request because it was busy. It didn't process it.

It tends to happen in bursts, at busy moments in the market.

Common causes

  • High load on the broker's server, for example around news.
  • Server maintenance.

How to fix it

  • Wait a few seconds, refresh prices with RefreshRates(), and try again.
  • Back off longer after each busy answer, and stop after a few tries.

Example in MQL4:

int ticket = -1;
for(int i = 0; i < 4 && ticket < 0; i++)
{
   RefreshRates();
   ticket = OrderSend(Symbol(), OP_SELL, 0.10, Bid, 3, 0, 0, "", 4711);
   if(ticket < 0 && GetLastError() != ERR_SERVER_BUSY) break;
   if(ticket < 0) Sleep(1000 * (i + 1));
}

Is it safe to retry?

Yes, after a pause.

Could the order have executed?

No. The server didn't take it.

How Tickwire handles it

Tickwire treats it like MT5 10024, and the MT4 code stays in the message.

This is one of the MT4 answers Tickwire reports as 10024 with nothing sent, so a retry after a moment is safe. See trade results.

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.