What MQL4 error 146 means
The official MQL4 runtime table names error 146 ERR_TRADE_CONTEXT_BUSY and defines it as “trade context is busy.” Another trade operation is still using the terminal trade context, so the current request cannot run yet.
An error-state value is supporting context, not proof that a call failed or a diagnosis of the whole EA. For noncritical API failures, read the return value and then GetLastError, which resets _LastError. Critical errors such as zero division terminate execution, so code after the failing expression cannot serve as a recovery handler.
