Stop silent failures when TradingView alerts fire but trades don't. Fix malformed JSON, expired alerts, and plan limits to keep your automation on track.

When a TradingView webhook fails, the alert fires but no trade executes. The cause is almost always one of five issues: an invalid webhook URL, malformed JSON in the alert message, an expired or paused alert, a plan tier that does not support webhooks, or a broker connection that has dropped authentication. Diagnosing the failure means checking the alert log first, then the webhook receiver, then the broker side, in that order.
{{strategy.order.action}}.A failed TradingView webhook means the alert condition triggered on the chart, but the HTTP POST to your webhook URL either never sent or was rejected by the receiver. The result is the same either way: no trade reaches your broker. This is different from a strategy that simply did not signal, which is a Pine Script logic issue rather than a delivery issue.
Tradingview alert troubleshooting when webhook fails starts with one question: did TradingView actually send the request? The platform exposes a log inside the Alerts panel that shows each fire event and the HTTP response code received. If the log shows nothing, the alert never triggered. If it shows a 4xx or 5xx response, the receiver got the message and rejected it. Each path leads to a different fix.
TradingView Webhook: An HTTP POST request that TradingView sends to a user-defined URL when an alert fires. The request carries the alert message as the body, which the receiver parses to execute a trade or take some other action.
Most failed webhooks come down to one of seven recurring problems. Recognizing the pattern saves time before you start digging into Pine Script or broker logs.
Failure ModeSymptomWhere to LookPlan does not include webhooksWebhook URL field is greyed out or missingTradingView account planAlert expiredAlert shows as "Stopped" or "Expired" in listAlerts panel, status columnMalformed JSONReceiver returns 400 Bad RequestAlert message bodyWrong webhook URLLog shows DNS error or 404Webhook URL fieldReceiver timeout (over 3 seconds)Log shows timeout error, no retryReceiver/server logsBroker auth expiredWebhook delivers, broker rejects orderBroker connection statusAlert frequency limit hit"Once Per Bar" silently skips signalsAlert frequency setting
The first three account for roughly 80% of support tickets in our experience working with TradingView automation users. Plan tier requirements alone catch new traders constantly, because the webhook URL field appears in the alert dialog on every plan but only functions on paid tiers.
Work outward from TradingView toward your broker. Skipping steps is how you spend two hours fixing the wrong thing.
Alert Log: The history of fire events for a single TradingView alert, accessible by clicking the alert in the Alerts panel. It records the timestamp, message sent, and HTTP response received from the webhook URL.
Malformed JSON is the silent killer. The alert fires, the webhook delivers, and the receiver returns a 400 because it could not parse the body. Here are the specific things to check.
If you copy a JSON template from a website or document, the quote characters often get converted to "smart quotes" (curly quotes). These look identical to a person but break every JSON parser. Retype quotes manually inside TradingView's alert message box, or paste through a plain-text editor first.
Variables like {{strategy.order.action}}, {{ticker}}, and {{close}} are replaced at fire time. If your JSON looks like this:
{"action": "{{strategy.order.action}}", "symbol": "{{ticker}}", "price": {{close}}}
Note that price has no quotes around the variable because {{close}} resolves to a number. Putting quotes around it produces "price": "4523.25" which is a string, and your receiver may reject it depending on schema validation. Check the JSON payload format guide for variable-to-type mapping.
JSON does not allow trailing commas. {"a": 1, "b": 2,} is invalid. Most parsers reject the entire payload silently from TradingView's perspective, and you only see the failure on the receiver side.
If you are passing alert text with line breaks, they must be encoded as \n inside the string, not literal newlines. Literal newlines inside a JSON string break the parse.
JSON Payload: The body of the HTTP POST request TradingView sends when an alert fires. It must be valid JSON with double quotes, no trailing commas, and properly typed values for the receiver to accept it.
TradingView's plan tier requirements determine whether webhooks work at all and how many alerts you can run simultaneously. As of 2025, the breakdown is approximately:
PlanWebhooksConcurrent AlertsFreeNo1EssentialYes20PlusYes100PremiumYes400
If your alert dialog shows the webhook URL field but checking that box does nothing on fire, confirm your plan. The field is visible on lower tiers but inert. Pricing and limits change, so confirm against the current TradingView pricing page.
Alert frequency settings also cause silent skips. "Once Per Bar Close" only fires when the bar closes, so intrabar conditions never trigger a webhook. "Once Per Bar" fires the first time the condition becomes true on the bar and ignores subsequent re-triggers. If you expect every cross to fire and only see one per bar, this is why. For multi timeframe alert setups, see the multi-timeframe alerts guide.
A successful webhook delivery (200 response in the alert log) does not guarantee a trade. The receiver, whether that is a third-party automation platform or your own server, has its own failure modes.
ES1! or CME_MINI:ESZ2025. Your broker expects ES or ESZ25. The webhook payload needs to map correctly. Our futures instrument automation guide covers symbol formats per contract.Platforms like ClearEdge Trading handle the broker reauthentication and symbol mapping layer between TradingView and the broker, which removes a class of failures from your debug list. Check supported brokers for compatibility. Multiple options exist in this space, so evaluate based on your platform selection criteria.
After fixing a failure, harden the setup so it does not happen again.
Either your plan does not include webhooks (Free and Pro do not) or the webhook URL field was left blank when you created the alert. Check the alert's settings and confirm the URL is filled in and your plan is Essential or higher.
No. If the receiver returns a non-2xx status code or times out beyond about 3 seconds, the alert is considered delivered and discarded. Build retry logic on the receiver side or use a platform that handles requeue for you.
The alert log will show a 400 Bad Request or 422 Unprocessable Entity from the receiver. Copy the exact alert message into a JSON validator to find the syntax error, which is usually smart quotes, a trailing comma, or an unquoted string value.
Alerts on most plans expire after roughly 2 months and need to be restarted. Open the Alerts panel, find any alert showing "Expired" or "Stopped," and click restart. Premium plans extend this duration.
Webhooks are configured in alerts, which sync across devices, so an alert created on desktop fires from TradingView's servers regardless of which device you are using. The mobile app itself does not need to be open for webhooks to fire.
The failure is on the receiver-to-broker leg, not the TradingView-to-receiver leg. Check broker authentication status, symbol mapping, and account margin or position limits. The alert log will show 200, but the broker logs will reveal the rejection.
TradingView typically dispatches webhooks within 1-2 seconds of the bar event. Total round trip from alert fire to broker fill depends on the receiver and broker API speed, often 200ms to 2 seconds for well-tuned setups. Slower than 5 seconds end-to-end suggests a problem worth investigating.
Tradingview alert troubleshooting when webhook fails is a methodical process: check the alert log, validate the JSON, confirm plan tier, then verify the broker connection. Most failures fall into a handful of patterns, and the alert log tells you which one almost every time.
For deeper setup guidance and prevention strategies, the TradingView automation pillar guide walks through end-to-end webhook configuration and security practices.
Want to dig deeper? Read our complete guide to TradingView automation for detailed setup instructions and troubleshooting strategies.
Disclaimer: This article is for educational purposes only. It is not trading advice. ClearEdge Trading executes trades based on your rules, it does not provide signals or recommendations.
Risk Warning: Futures trading involves substantial risk. You could lose more than your initial investment. Past performance does not guarantee future results. Only trade with capital you can afford to lose.
CFTC RULE 4.41: Hypothetical results have limitations and do not represent actual trading.
By: ClearEdge Trading Team | About
Every week, we break down real strategies from traders with 100+ years of combined experience, so you can skip the line and trade without emotion.
