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.
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.
Related codes
One API for MT4 and MT5
Clear trade outcomes, idempotent orders and an audit log. Read the error reference or the quickstart.