NRUNO · TradingView + cTrader

TradingView webhooks: delivery, messages and errors

A webhook sends your alert message to a receiving service. If a trade is missing, check three separate things: did the alert trigger, did the message arrive, and did the broker execute it?

Reviewed 15 September 2026 · NRUNO

What happens when the alert fires?

TradingView makes an HTTP POST request to the webhook URL in your alert settings. The request body is the alert message. A receiver such as NRUNO checks that message and processes supported instructions.

For example, an indicator can send a buy instruction for EURUSD. NRUNO can accept it and pass it to a connected cBot, while the broker can still reject the order because the market is closed. Delivery and execution are different results.

For the actual fields to enter, use the step-by-step webhook setup guide.

JSON and plain text are both transports

Valid JSON produces an application/json request. Other messages use text/plain. Plain text is not automatically a delivery error, but the receiver still needs to understand it.

Likewise, valid JSON is not automatically a valid trade. {"message":"hello"} is valid JSON, but does not tell a trading connector which symbol, direction or action you want. Follow your receiver's own message contract; formats from different connectors are not interchangeable.

Match the symptom to the next check

What you seeWhat it tells youWhat to check next
No alert log entryThe alert event is not established.Condition, expiry, symbol, timeframe and saved script inputs.
400 Bad RequestThe receiver rejected the request.The exact emitted body and the receiver's validation error. Missing fields or broken JSON are possibilities, not the only causes.
401 or 403Access was refused.The personal webhook URL, account access and receiver authentication.
404The requested endpoint was not found.The URL path and current receiver address. Do not use the public homepage.
500 or another 5xxThe receiving service or its upstream failed.Receiver logs and support. Record the alert time and status before trying again.
Request took too longTradingView did not receive a response within its allowed time.Whether the receiver already processed the instruction. Repeatedly resending it may create duplicate actions.
Delivered, but no tradeThe request arrived; execution still needs checking.Receiver validation, cBot connection, symbol, mode and broker result.

Why an empty strategy message breaks an alert

The placeholder {{strategy.order.alert_message}} takes its value from the order call that triggered the alert. If that call supplies no message, a surrounding JSON wrapper can end up with an empty payload. NRUNO may then have no symbol or direction to process.

Check entries and exits, not just the first strategy.entry(). After fixing your code, recreate the running alert. See the strategy message example.

The three-second limit is a delivery limit

TradingView cancels a request if the receiver takes more than three seconds to process it. That is not a promise that a broker fills an order in three seconds. A receiver can acknowledge the request and continue processing separately.

Before resending a timed-out instruction, inspect the receiver and cTrader position state. A timeout does not prove that nothing happened.

Send support the evidence that helps

  • The alert time and timezone.
  • The HTTP status or TradingView delivery error.
  • A redacted copy of the actual message, with credentials and personal URLs removed.
  • The NRUNO signal ID, if the dashboard provides one.
  • The cBot connection status and whether you tested in Paper mode or on a demo account.

NRUNO's cloud connection for cTrader keeps the signal path visible. You can test it for 14 days without a card before choosing a plan.

Try the connection with your own setup

14 days free, no payment card and no automatic paid subscription. Ask us if you need help choosing the right alert.

Technical sources

TradingView: webhook alerts · Pine Script: alerts · Pine Script: alert FAQ