TradingView Webhook Failed? Troubleshooting Guide To Fix Alert Errors

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.

Key Takeaways

  • TradingView only sends webhooks on Essential plans and above. Free and Pro accounts cannot use the "Webhook URL" field.
  • The most common silent failure is a JSON payload with smart quotes, trailing commas, or unescaped Pine Script variables like {{strategy.order.action}}.
  • TradingView retries failed webhooks zero times. If the receiver returns a non-2xx status or times out past 3 seconds, the alert is gone.
  • Alerts expire after about 2 months on most plans. An "expired" alert still shows in the list but never fires.
  • Check the alert log (Alerts panel, Log tab) before touching anything else. It tells you whether TradingView fired the webhook at all.

Table of Contents

What Does It Mean When a TradingView Webhook Fails?

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.

What Are the Most Common Causes of Webhook Failures?

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.

How Do You Diagnose a Failed Webhook Step by Step?

Work outward from TradingView toward your broker. Skipping steps is how you spend two hours fixing the wrong thing.

  1. Open the Alerts panel and find the alert. Click the alert name, then the "Log" tab. This shows every fire event with timestamp and HTTP response.
  2. Check the alert status. If status is "Stopped" or "Expired," the alert is dormant. Restart it. Alerts expire after roughly 2 months on Essential and Plus plans.
  3. Read the most recent log entry. A 200 response means TradingView did its job and the receiver accepted the payload. Anything else points to where the failure lives.
  4. Test the webhook URL manually. Use a tool like webhook.site or a curl command with your alert's exact JSON body. If the manual test works but TradingView fails, the issue is in the alert message formatting.
  5. Verify the broker connection. Even a successful webhook delivery means nothing if the broker side has dropped auth tokens or hit a position limit.
  6. Confirm the alert actually should have fired. Check the chart at the timestamp. Sometimes the Pine Script condition was not actually true, which is a strategy issue, not a webhook issue.

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.

Fixing JSON Payload and Alert Message Errors

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.

Smart Quotes and Hidden Characters

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.

Pine Script Variables Not Substituting

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.

Trailing Commas

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.

Unescaped Newlines in String Values

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.

Plan Tier and Alert Frequency Limits

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.

Broker-Side and Receiver Failures

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.

  • Broker auth expired. OAuth tokens for many futures brokers expire daily or after periods of inactivity. The webhook arrives, the platform tries to place the order, and the broker returns 401 Unauthorized.
  • Symbol mismatch. TradingView's ticker for ES is often 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.
  • Position limit or margin call. The broker accepts the order request but rejects the fill. This shows up in broker logs, not TradingView.
  • Receiver downtime. If your automation platform has a brief outage during the alert fire, TradingView does not retry. The alert is gone. This is why alert delivery speed and receiver uptime matter for production trading.

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.

Prevention Checklist for Reliable Alerts

After fixing a failure, harden the setup so it does not happen again.

  • Validate every alert template's JSON in a parser before saving. Many free online JSON validators catch errors in seconds.
  • Use a custom alert with explicit field names rather than inheriting defaults. You see exactly what is being sent.
  • Set a calendar reminder to refresh alerts before the 2-month expiration. Or upgrade to a plan with longer durations if available.
  • Test new strategies on paper accounts first. Webhook delivery is identical between paper and live, so you catch formatting issues without capital risk.
  • Log webhook receipts on the receiver side independently. If TradingView's log says 200 but you have no record on the receiver, something between them is dropping data.
  • Use a webhook secret or signature header to authenticate the source. Webhook security best practices covers this in detail.
  • Review the broader TradingView automation guide for end-to-end setup that minimizes failure points.

Frequently Asked Questions

1. Why does my TradingView alert fire but no webhook is sent?

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.

2. Does TradingView retry failed webhooks?

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.

3. How do I know if my JSON payload is malformed?

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.

4. Why do my alerts stop firing after a few weeks?

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.

5. Can I use webhooks on the TradingView mobile app?

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.

6. What if the webhook delivers but the trade never executes at my broker?

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.

7. How fast should webhook delivery be?

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.

Conclusion

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.

References

  1. TradingView. "About Webhooks." https://www.tradingview.com/support/solutions/43000529348/
  2. TradingView. "Pricing and Plans." https://www.tradingview.com/pricing/
  3. TradingView. "Pine Script Alert Variables Reference." https://www.tradingview.com/pine-script-docs/concepts/alerts/
  4. CME Group. "Symbol Specifications for Equity Index Futures." https://www.cmegroup.com/markets/equities.html

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

Steal the Playbooks
Other Traders
Don’t Share

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.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.