TradingView Webhook Not Working? 12 Reasons Your Alert Never Reached MT4 or MT5

The alert fired. The chart shows the arrow. TradingView says it was sent. And MetaTrader did nothing at all. Almost every one of these turns out to be one of a dozen specific causes — and you can narrow it to a single stage in about two minutes, before you start changing settings. Work the stages in order rather than guessing, because the fixes for stage 4 will never solve a stage 1 problem.

First: Find Out Which Stage Failed

An alert crosses four boundaries between your chart and your broker. Each one can stop it, and each one fails in a way you can observe.

StageWhere to lookWhat it means
1. TradingView fired it Alerts panel → Log tab No entry: the condition never triggered. The webhook is irrelevant.
2. The server accepted it Alert log entry exists, no error shown by TradingView TradingView reports failed deliveries. A clean send means it left.
3. The EA received it MetaTrader → Experts tab Every message the EA receives is logged here. This is the key test.
4. The EA agreed to trade it On-chart comment, then Experts tab Message logged but no order: an EA filter blocked it.

The Experts tab is the fork in the road. In MetaTrader, click View → Terminal, then the Experts tab — not Journal. If your message appears there, skip to stage 4; the alert made it all the way to the terminal and something in the EA declined it. If it does not appear, your problem is in stage 1, 2 or 3. The Journal tab is a different log — it records terminal-level events like the EA failing to load, which matters for cause 7 below.

If you want to remove stages 1 and 2 from the picture entirely, use the Test Webhook tool in your dashboard under My Account. It sends a message you type straight to your EA, bypassing TradingView completely. A test message that trades proves stages 3 and 4 are healthy and sends you back to your alert setup. A test message that does nothing proves the opposite, and saves you from re-reading Pine Script that was never the problem.

Stage 1 — TradingView Never Sent It

1. The alert expired

This is the most common cause of the "it worked for weeks and then just stopped" report. Alerts on lower TradingView plans carry an expiry date, and when it passes the alert stops firing without any notification you are likely to see. Open the Alerts panel and look at the alert's status — expired alerts are greyed out and listed separately. Recreate it, or upgrade to a plan with non-expiring alerts.

2. Webhook URL is not enabled on the alert

The webhook is a per-alert setting, not an account setting, and it is easy to lose. Editing an alert, duplicating one, or recreating it after a Pine Script change all produce an alert whose Notifications tab needs checking again. Open the alert, go to the Notifications tab, and confirm Webhook URL is ticked with https://webhook.tradingrouter.com in the field.

Webhook notifications require a paid TradingView plan — Essential or above. On the free plan the option is visible but inert, which is a genuinely confusing failure mode.

3. Wrong condition selected in the dropdown

If you build your message in Pine Script, the condition dropdown decides whether your message is used at all:

Pick the plotted series by mistake and TradingView fires an alert containing its own default text, which is not a valid order message. The Pine Script webhook guide covers both setups in detail.

Stage 2 — The Server Rejected the Message

4. Client token in the alert instead of the Master token

If one cause deserves to be checked before all others, it is this one. The two tokens are not interchangeable:

TokenWhere it goes
Master tokenInside the TradingView alert message — token=...
Client tokenThe EA's Inputs tab, in Trading Router Client Token

Both are on your dashboard, both are case sensitive, and a swapped pair produces exactly the symptom in this article's title. Copy rather than retype, and check you did not bring a trailing space or a line break along with it. If you run multiple tokens, confirm the Master token in the alert belongs to the same pair as the Client token in that terminal's EA.

5. A malformed message

The message is a comma-separated list of key=value pairs. A minimal market buy is:

token=YOUR_MASTER_TOKEN, signal=buy, symbol=EURUSD, risk_lots=0.1

What breaks it in practice:

6. The service is stopped or the trial ended

Tokens stop routing when the service is not running. Open your dashboard and check the service status. If the trial finished without a plan being started, or Stop Service was pressed at some point, alerts are accepted and discarded. Restart from the same Dashboard page with Start A Plan — your tokens and settings are preserved, so nothing needs reconfiguring in the terminal.

Stage 3 — The EA Never Got It

Nothing in the Experts tab points here. Work down this list in order.

7. The EA is not actually running

A running Trading Router EA prints a comment block on the chart showing its version and whether it is active — see check EA status. No comment means the EA is not running, whatever the smiley face in the corner suggests. Things that produce a silently dead EA:

You do not need to whitelist any URL. The EA does not use WebRequest, so the "Allow WebRequest for listed URL" box in Options is irrelevant here — adding the webhook address there fixes nothing. Plenty of general MetaTrader webhook advice online says otherwise; it applies to other tools, not this one.

8. Wrong Client token in the EA

The mirror image of cause 4. The EA runs, shows an active comment, and quietly receives nothing because it is listening on a token that is not the one your alert routes to. Re-copy the Client token from the dashboard into the EA's Inputs tab. If you moved a chart template between terminals, the old token came with it.

Stage 4 — The EA Received It and Declined

Your message is in the Experts tab and no order exists. This is the stage worth knowing well, because every cause here is a setting that is working exactly as designed — just not as you intended. Check the on-chart comment first: a halted EA and an EA blocked by a limit both say so there.

9. Outside the EA's trading hours

The most under-diagnosed cause on this list. Under Miscellaneous Settings, Start Time (Broker Time) and End Time (Broker Time) define when the EA is active. Outside that window every incoming signal is ignored. Two traps sit inside it:

10. The symbol does not exist at your broker

Your alert says EURUSD. Your broker's Market Watch says EURUSDm, EURUSD.raw, EURUSD_i or EURUSD-ECN. The EA looks for the name it was given, does not find it, and stops. Three ways to fix it, in order of preference:

Also confirm the symbol is visible in Market Watch. Some brokers hide instruments until you add them, and a hidden symbol behaves like a missing one.

11. A position limit is already reached

Max Open Positions and Max Open Positions Per Symbol block new market orders once the count is hit. Both use 0 for unlimited, and both interact with Magic Restriction in a way that surprises people:

Note that these limits apply to market buy/sell orders only, so pending orders continuing to work while market orders fail is a strong hint you are looking at this cause.

12. A filter or halt is active

Any of these will consume the message without trading, and each is silent unless you know to look:

Bonus: the order was sent and the broker refused it

Sometimes the EA does everything right and the broker declines. These show up in the Experts or Journal tab with a broker error, so you are no longer guessing:

A Two-Minute Routine That Finds Most of Them

Step 1
Read the on-chart comment

No comment at all means the EA is not running — go to cause 7. A comment saying the EA is halted names your problem outright. This one glance eliminates several stages.

Step 2
Open the Experts tab and fire a Test Webhook

From your dashboard, send a known-good message through Test Webhook. Arrives and trades: your EA is fine and the fault is in TradingView or the alert message. Arrives and does not trade: stage 4, and the log usually says which filter. Never arrives: stage 3, or the token pair is wrong.

Step 3
Compare the message against your terminal

Take the exact string from the Experts tab and check three things against MetaTrader: is the symbol spelled the way Market Watch spells it, is the current broker time inside your Start/End window, and is the token in the message the Master one? That covers causes 4, 9 and 10 — between them, the large majority of real cases.

If all three come back clean, send the exact message and the matching Experts tab lines to support. Those two things together are usually enough to identify the cause without any further back and forth.

Not set up yet? Get a TradingView alert executing on MT4 or MT5 in about ten minutes.

Start Free 7-Day Trial   Test Webhook Docs →

Next Steps