MT4 Push Notifications Not Working: Setup, Diagnosis, and Reliable EA Alerts

Why MT4 Push Notifications Fail (And Why It Matters)

A missed alert during live trading is not a minor inconvenience. When MT4 push notifications are not working, you may miss an entry signal, fail to act on a stop-loss breach, or remain unaware that your Expert Advisor has encountered a critical error — all while the market moves against an unmonitored position. For traders running systematic or semi-automated strategies, silent notification failures represent a genuine risk management gap.

At the protocol level, MT4 push notifications route through MetaQuotes-owned servers before reaching your mobile device. The terminal generates a notification event, transmits it to the MetaQuotes server infrastructure, and the relay delivers it to the paired mobile app. Every link in that chain must be functioning: the terminal must be online, the MetaQuotes ID must be correctly entered, the mobile app must be active and paired, and the relay servers must be reachable. A break anywhere produces the same frustrating outcome — silence.

What makes this particularly dangerous is that the failure is invisible by default. Your EA continues executing. Orders may still be placed. But the notification layer has dropped quietly, and you receive no indication that alerts are no longer arriving. In practice, traders often discover the problem only after missing a critical market event.

  1. Recognize that push notification failures cost real money through missed signals and unmonitored positions.
  2. Understand that notifications travel through MetaQuotes servers — not directly from terminal to phone.
  3. Identify the four failure points: terminal connectivity, MetaQuotes ID configuration, mobile app pairing, and relay server availability.
  4. Accept that silent failures are the default behavior — MT4 does not alert you when notifications stop working.
  5. Commit to actively verifying your notification pipeline rather than assuming it is operational.

Understanding what has to work — and why — is the foundation for every diagnostic step that follows. That starts with the underlying architecture connecting your terminal to your phone.

MT4 Push Notification Architecture: What Has to Work

MetaTrader push notifications depend on three interdependent components functioning correctly at the same time. Understanding this architecture helps you pinpoint exactly where the delivery chain breaks — and why a problem in any single layer can silence your entire alert system.

Here is what has to work for an MT4 push notification to reach your cell phone:

  1. Pair a valid MetaQuotes ID. The MetaQuotes ID is a unique identifier generated by the MetaTrader mobile app on your device. Navigate to the app’s settings to locate it — it appears as an alphanumeric string under the “Messages” or “MetaQuotes ID” section. This ID is the delivery address for every notification; without an accurate, active ID entered in your MT4 terminal, no alert will route correctly.
  2. Confirm the MetaQuotes push server is reachable. MT4 does not send push notifications directly to your phone. Instead, the terminal relays alerts through MetaQuotes infrastructure, which then forwards the message to the mobile app. Your terminal must maintain an outbound internet connection on the required ports. Firewall rules, VPS network policies, or broker-side restrictions can silently block this relay without generating a visible error in the terminal log.
  3. Verify the terminal’s “Allow push notifications” setting is active. Even with a correct MetaQuotes ID, notifications will not transmit unless the push notification checkbox is explicitly enabled in terminal options. This is a separate control from general connectivity, and it is easy to overlook after reinstalling MT4 or restoring a configuration backup.
  4. Ensure the EA calls SendNotification() correctly. In MQL4 programming, the SendNotification() function accepts a single string argument — the message text — and returns a boolean indicating success or failure. A common pattern is for developers to skip checking this return value, which means a failed delivery produces no visible warning inside the Expert Advisor. In practice, wrapping the call in a conditional and logging the result to the Experts tab exposes failures that would otherwise go undetected.
  5. Respect the notification rate limit. MT4 enforces a throttle of no more than two push notifications per second and no more than ten per minute. An EA that fires alerts too aggressively will have later notifications silently dropped. This constraint is particularly relevant in [custom MT4 development](https://mqluistudio.com/category/mt4-development/) where high-frequency signal logic can trigger bursts of alerts in rapid succession.
  6. Keep the mobile app active and logged in. The MetaTrader mobile app must be installed, the push notifications permission granted at the operating system level, and the account signed in. Background app refresh restrictions on iOS, or battery optimization settings on Android, are a frequent and overlooked cause of delayed or missing alerts.

Understanding this delivery chain as a whole — rather than assuming one setting controls everything — is what separates a reliable alert system from one that fails unpredictably in live trading. With this architecture mapped out, the logical next step is auditing your terminal configuration directly, beginning with the settings that control how MetaTrader push notifications are authorized and routed from the platform itself.

Step 1: Validate Terminal Configuration

With the architecture clearly in mind, the logical starting point for diagnosing broken EA push alerts is the MT4 terminal itself. A misconfigured Notifications tab is the single most common root cause, and correcting it takes less than two minutes.

Complete this sequence to confirm your terminal is configured correctly before investigating anything else.

  1. Open the Options dialog in MetaTrader 4 by navigating to Tools > Options in the top menu bar, or press Ctrl+O as a shortcut.
  2. Select the Notifications tab from the options panel. This tab contains every setting that controls whether MT4 can dispatch alerts to a paired mobile device.
  3. Check the Enable Push Notifications checkbox. If this box is unchecked, no alert your EA generates will ever leave the terminal — the pipeline is closed at the source regardless of any other setting.
  4. Locate your MetaQuotes ID on your mobile device. Open the MetaTrader 4 app, navigate to Settings > Messages, and find the alphanumeric ID displayed there. This ID uniquely identifies your mobile device as the notification target.
  5. Paste the MetaQuotes ID into the MetaQuotes ID field in the Notifications tab on your desktop terminal. A single typo here breaks pairing entirely, so copy-paste rather than typing manually whenever possible.
  6. Click OK to save and then send a test notification using File > Send Test Notification to confirm the connection is active.

One practical note: the MetaQuotes ID changes if you reinstall the mobile app or switch devices. What typically happens is that traders update their phone, forget to re-pair the terminal, and then spend hours troubleshooting EA logic that was never actually at fault. Always re-verify the ID after any mobile app change.

With the terminal validated, the next layer to examine is the mobile app itself — and there are version requirements and account-pairing details that introduce their own category of failures.

Step 2: Verify Mobile App Setup

With the terminal configuration confirmed, the next layer to examine is the mobile side of the connection. MT4 mobile notifications depend on the MetaTrader 4 app being correctly installed, logged in, and linked to the right account — and each of those conditions can fail independently.

Follow these steps to verify your mobile setup is configured correctly:

  1. Confirm the app version. Open the MetaTrader 4 app on your device and navigate to the About section. MetaQuotes periodically deprecates older app builds; running an outdated version is a common and overlooked cause of silent notification failures. Update to the latest available release before proceeding.
  2. Check which account is active on mobile. A pairing failure often occurs when the mobile app is logged into a different account than the desktop terminal generating alerts. Verify that the account number displayed on mobile matches the terminal account exactly — including broker server.
  3. Enable notifications at the device OS level. On both iOS and Android, app-level notification permissions can be silently disabled after OS updates. Go to your device’s notification settings, locate MetaTrader 4, and confirm that notifications are set to Allow with sounds and alerts enabled.
  4. Confirm the MetaQuotes ID entered on desktop matches the mobile device. Open the MetaTrader 4 app on your phone, navigate to Settings, then Messages. Your unique MetaQuotes ID appears here. Any character mismatch in the ID field on the desktop terminal will break the link entirely.
  5. Log out and log back in on mobile if the link appears stale. In practice, re-authenticating on the mobile app refreshes the device token registered with MetaQuotes servers. This step resolves a subset of pairing failures that persist even after the ID appears correct.
  6. Test the connection using a single manual message. From the desktop terminal, open Tools → Options → Notifications and click the Test button. A properly paired device will receive a test push notification within a few seconds. No message arriving is a clear signal that the mobile configuration, not the EA logic, is the source of the problem.

One practical note: a trader can have the MetaTrader 4 app installed on multiple devices, but MetaQuotes links push notifications to a single MetaQuotes ID at a time. Switching devices without updating the ID in terminal options will silently break all MT4 mobile notifications from that point forward. This pairing limitation catches many experienced developers off guard.

Once the mobile app is verified and a test message confirms delivery, you have isolated the mobile layer as functional. If the test still fails after completing every step above, the problem almost certainly sits at the network or broker configuration level — which is exactly what the next step addresses.

Step 3: Test and Diagnose Failure States

With terminal and mobile app settings confirmed, the next step is active diagnosis — moving from configuration review to live failure testing. This step walks you through using MT4's built-in tools to isolate exactly where your MetaTrader alert setup is breaking down, whether at the network layer, the server handshake, or the broker level.

  1. Open the Test dialog in terminal options. Navigate to Tools → Options → Notifications and click the Test button. MT4 will attempt to send a real push notification to the MetaID you entered. A success dialog confirms the outbound request was accepted; a failure dialog typically surfaces a generic connection error, which narrows the problem to the network or MetaID layer immediately.
  2. Read the Journal tab for specific error codes. Open the Journal tab at the bottom of the MT4 terminal immediately after running the test. MT4 logs every push attempt with a timestamp and a result string. Look for entries referencing push notification — error messages such as “failed to send” or “wrong MetaID” pinpoint the exact failure mode far faster than repeated trial-and-error.
  3. Check network and firewall access to MetaQuotes servers. MT4 push notifications route through MetaQuotes infrastructure at mt4.metaquotes.net. If a corporate firewall, VPS security group, or ISP-level filter blocks outbound traffic on port 443 to that domain, the Test button will silently fail or time out. Confirm the domain is whitelisted in your firewall rules and that your VPS or desktop environment permits the connection.
  4. Disable third-party security software temporarily. Antivirus suites and endpoint protection tools occasionally intercept SSL traffic from MT4, stripping the headers the MetaQuotes push service expects. Disable these temporarily — in a controlled test environment only — and re-run the Test button to determine whether the software is the blocking agent.
  5. Investigate broker-side restrictions. Some brokers running white-label MT4 builds restrict or disable push notification services at the server level. Contact your broker’s support team and confirm whether push notifications are enabled for your account type. This is a commonly overlooked variable, and no amount of client-side configuration will resolve a broker-imposed restriction. Traders running strategies across [multiple custom dashboards](https://mqluistudio.com/category/trading-dashboards/) occasionally discover the issue originates here after exhausting every other diagnostic step.
  6. Re-run the Test button after each corrective change. Treat each fix as a hypothesis. Change one variable — firewall rule, security software, MetaID — then test again and review the Journal tab. This compound verification approach prevents the common mistake of changing multiple settings simultaneously and being unable to identify which change resolved the problem.

Once the Test button produces a confirmed success entry in the Journal tab, the delivery path between the terminal and your phone is validated. If alerts are still not arriving despite a passing test, the failure likely lives one layer deeper — inside the MQL4 code driving your Expert Advisor — which is exactly what the next step addresses.

Step 4: Fix MQL4 Code-Level Issues

With configuration and live diagnostics complete, the final layer to examine is the EA source code itself. A surprising number of MQL4 push notifications failures trace back to avoidable coding patterns rather than platform settings. Correcting these issues at the code level tends to produce more durable results than any configuration adjustment alone.

Follow this sequence to audit and repair common code-level problems:

  1. Check the SendNotification() return value. The function returns true on success and false on failure. Many EAs call it without capturing the result. Wrap every call in a conditional and immediately invoke GetLastError() on failure. Error code 4515 indicates an invalid MetaQuotes ID; error 4516 signals that the notification was not sent due to a platform-level block. Log these codes to the Experts tab so failures are visible during forward testing.
  2. Enforce the 255-character message limit. MetaTrader 4 enforces a hard cap on notification message length. Messages that exceed 255 characters are silently dropped — no error is raised, and the function may still return true. Audit every SendNotification() call and apply StringLen() validation before dispatch. Truncate dynamic content such as price strings or symbol names if necessary.
  3. Respect the rate limit of two notifications per second. Exceeding this threshold causes subsequent notifications to be suppressed without warning. A common pattern is an EA firing alerts on every tick inside a fast market. Introduce a timestamp guard using TimeCurrent() and store the last dispatch time in a static variable, blocking any call that arrives within 500 milliseconds of the previous one.
  4. Implement deduplication logic. Without deduplication, a single condition — such as price crossing a level — can trigger dozens of identical alerts across consecutive ticks. Store the last notification message in a static string variable and compare it against each new message before calling SendNotification(). Only dispatch when the content or context has meaningfully changed.
  5. Combine rate limiting and deduplication in one guard function. Wrapping both checks into a reusable function — for example, SafeNotify(string message) — keeps EA development clean and consistent across multiple strategies. This approach ensures every alert passes through the same validation layer regardless of where it is triggered in the EA logic.
  6. Test the corrected code in a controlled environment. After applying fixes, run the EA on a demo account with verbose logging enabled. Confirm that GetLastError() returns zero after each successful SendNotification() call and that duplicate conditions produce only one notification per event.

Applying these corrections resolves the majority of code-level notification failures. However, even well-written guard logic operates in isolation — it cannot confirm delivery, track acknowledgement, or escalate when alerts go unnoticed. That gap between dispatch and verified receipt is where more structured solutions become relevant, and it is exactly what purpose-built alert architecture addresses.

Building Reliable EA Alerts: The MQL UI Studio Approach

The three diagnostic steps covered so far — configuration review, live failure testing, and MQL4 code-level fixes — resolve the majority of EA push alerts problems. But some environments expose deeper challenges: brokers with inconsistent server connectivity, EAs firing duplicate alerts across reconnection cycles, or trading workflows where a missed notification carries real financial consequence. When self-repair reaches its structural limits, a purpose-built alerting architecture tends to work better than patching individual failure points.

What a robust alert system can be designed to include goes well beyond a single SendNotification() call:

  1. Implement broker-aware alert logic. Design the alert layer to account for your specific broker’s server behavior — including known disconnection windows and reconnection patterns — rather than relying on MetaTrader’s default retry behavior alone.
  2. Build delivery status tracking. Log each alert attempt with a timestamp, the market condition that triggered it, and whether acknowledgment was returned. This creates an auditable alert history directly inside the trading interface rather than relying on a mobile push log you cannot query.
  3. Apply deduplication rules at the source. Encode suppression windows and condition fingerprinting into the EA itself so that reconnection spikes or rapid tick sequences do not generate duplicate notifications to your phone.
  4. Layer escalation logic across channels. Structure the alert pipeline so that an unacknowledged push notification escalates to a secondary channel — such as an email alert or an on-screen dashboard flag — after a defined timeout period.
  5. Surface a custom alert center dashboard. Bring alert history, delivery status, and acknowledgment controls into a visible custom trading interface inside MetaTrader 4, so you can see at a glance which alerts fired, which were received, and which require follow-up action.
  6. Validate the full pipeline in a demo environment. Before running the system on a live account, confirm that each layer — deduplication, escalation, delivery logging, and dashboard display — behaves correctly under simulated connectivity stress.

MQL UI Studio approaches this kind of build by understanding the trader's actual workflow first — what decisions an alert must support, what information it must carry, and what happens if it never arrives — before any MQL4 programming begins. The result is an alert architecture designed around how you trade, not around what is easiest to code.

With this kind of system in place, verifying that everything works correctly becomes a structured, repeatable process rather than guesswork — which is exactly what the next section addresses.

Verification Checklist

With code-level fixes and a structured alert architecture in place, the final task is confirming that every layer of your notification pipeline is functioning correctly before you commit real capital. This checklist walks you through a systematic demo-first verification sequence that catches gaps a simple test tap cannot reveal.

  1. Confirm your MetaQuotes ID is registered in MT4 under Tools → Options → Notifications. Copy the ID directly from the MetaTrader mobile app to eliminate typos — even a single transposed character silently blocks delivery.
  2. Send a manual test notification using the Test button in the same Notifications panel. If this message does not arrive within 30 seconds, the issue is at the configuration or network layer, not the EA — resolve that first before touching any MQL4 code.
  3. Attach your EA to a demo chart and trigger a condition you know will fire, such as a price cross on a replay or a forced signal value in a test build. Verify the notification arrives with correct symbol, timeframe, and message text.
  4. Check the MT4 Experts and Journal tabs immediately after the trigger. SendNotification() returns false on failure; if your EA logs the return value, any false result with error code 4515 points to an ID problem, while 4516 indicates a send-frequency breach.
  5. Test across a simulated gap period — close and reopen MT4, then reconnect — to confirm the EA re-initializes correctly and does not miss the first qualifying signal after a reconnect event.
  6. Run the same sequence on your live account in demo conditions for at least one full trading session before switching to live. Broker-side connectivity, VPS latency, and symbol-specific behavior can all differ from your local development environment.

Completing this sequence systematically gives you compound verification across configuration, code, and infrastructure simultaneously. If anything surfaces at this stage, the diagnostic steps covered earlier in this article provide a clear path back to the root cause. Still have specific questions about platform differences or multi-EA setups? The FAQ section ahead addresses the most common edge cases traders encounter after completing this process.

FAQ

Completing the diagnostic and implementation steps above puts your alert pipeline on solid ground. These four questions surface repeatedly among MetaTrader EA developers working through push notification issues for the first time.

  1. Confirm whether MT5 supports push notifications. Yes — MetaTrader 5 includes the same `SendNotification()` function and requires the identical MetaQuotes ID pairing process. The setup path in MT5 mirrors MT4: enter your MetaQuotes ID under Tools → Options → Notifications, enable the checkbox, and test before deploying any EA. One practical difference is that MT5’s multi-threaded architecture can surface delivery timing issues that MT4 does not, so compound verification after deployment is still essential.
  2. Understand why the Test button succeeds but EA alerts do not. The Test button bypasses your EA entirely and sends a direct platform-level message. What typically happens is that the EA triggers on a condition that evaluates incorrectly — often a Boolean flag set at the wrong scope, a `SendNotification()` call inside a branch that never executes, or a return value of `false` that goes unchecked. Add a logging call immediately before `SendNotification()` in your MQL4 code to confirm the function is actually being reached at runtime.
  3. Control alert volume when running multiple EAs. Sending push from several EAs simultaneously without deduplication logic tends to flood your device and cause MetaTrader to throttle delivery. One practical approach is to implement a shared cooldown variable or a timestamp-gated condition in each EA so that repeated signals on the same instrument within a defined window are suppressed. Custom MQL4 development can centralize this logic into a reusable library rather than maintaining separate rate-limiting code across every EA.
  4. Assess whether your broker affects delivery. Brokers do not directly intercept push notifications — delivery routes through MetaQuotes servers, not the broker’s infrastructure. However, broker-side issues such as server latency, trade event delays, and or non-standard symbol naming can cause the EA condition to trigger late or not at all. Verify that your EA logic fires correctly on the broker’s data feed before concluding the notification layer is at fault.

Reliable push notification delivery in MetaTrader 4 is achievable with the right configuration, disciplined MQL4 code, and a verification routine you run before every live deployment. When the alert architecture needs to scale — across instruments, across sessions, or across multiple EAs — a purpose-built trading dashboard developed through MQL UI Studio can centralize delivery logic, enforce deduplication, and surface alert status directly inside the platform, so a missed notification never becomes a missed trade again.