Blog · TradingView · Article · updated 2026-09-25
TradingView study_error and alert rate limits: causes and fixes
Why TradingView alerts end up in study_error, how rate limits affect bulk alert creation, and how the TensorTrader extension detects both and stops safely.
Key takeaways
- 1study_error means the script failed to calculate on TradingView’s servers; the alert never fires.
- 2Batch Create checks the first alert and stops the batch if it errors.
- 3Rate limits pause the batch; the extension reconciles instead of retrying blindly.
What study_error means
study_error is the state TradingView gives an alert when the script behind it fails to calculate on the server. The alert exists, counts toward your quota, and never fires. Common causes are scripts that exceed server-side limits (too many bars requested, too many security() calls, loops that time out), inputs that are invalid for the symbol or timeframe, and scripts whose alertconditions depend on something unavailable server-side.
How Batch Create catches it early
Creating 200 alerts on a script that errors wastes the quota and your time. So the extension runs a pre-flight: after the first alert of a batch is created, it waits six seconds and checks that alert. If TradingView reports study_error, the extension deletes that alert, stops the batch, and suggests switching the mechanism to "Any alert() function call", which often works for scripts whose alertconditions fail. The run reports "Batch stopped after pre-flight test".
Fixes to try
- 1Switch the Alert mechanism to "Any alert() function call" if the script calls alert().
- 2Reduce heavy inputs: shorter lookbacks, fewer higher-timeframe requests.
- 3Try a different timeframe; some scripts only calculate on certain resolutions.
- 4Check the symbol: scripts that need volume or specific data fail on symbols without it.
- 5Ask the script author; some scripts are simply not alert-safe on the server.
Rate limits during bulk creation
TradingView limits how quickly an account can create alerts. Hit the limit and requests fail with a rate-limit error. The extension paces creation at 750 milliseconds between alerts, and if TradingView still returns a rate limit it stops the batch with the message that it paused before creating more alerts to avoid duplicate or rate-limit storms. It then waits and reconciles, so you know exactly which alerts exist.
The extension never retries a create blindly. A retry after an ambiguous error is how duplicate alerts, and duplicate orders, happen. Instead, the reconciliation sweep reads your real alert list, deletes any extra copies and recomputes results from what actually exists.
Multi-condition quota errors
Multi-condition alerts have their own cap. When TradingView reports max_complex_alerts_count_exceeded, the batch stops and reconciles. Free slots by deleting old multi-condition alerts or reduce the plan, then run again; alerts that already exist are skipped.
Diagnosing which cause you have
The extension's results panel lists failures with the first reason shown, which is usually enough to tell these apart. Deleting the failed alerts and re-running the batch is safe: existing good alerts are skipped automatically.
- every symbol fails
- The script itself is not alert-safe on the server; switch mechanism or pick another script
- only some symbols fail
- Missing data such as volume on those symbols; skip them
- only low timeframes fail
- Too many bars requested; shorten lookbacks or use a higher timeframe
- worked, then started failing
- The author updated the script or its inputs; recreate the alerts
Why no blind retries
It is tempting to make a bulk tool retry every failed create. The problem is ambiguity: a create request can fail on your side after TradingView already made the alert. Retrying then produces a duplicate, and a duplicate alert produces a duplicate order when it fires. That is why the extension creates once, then reads the real alert list to decide what exists.
Frequently asked questions
- Does a study_error alert count toward my limit?
- Yes. Delete it; it will never fire.
- Will re-running a batch create duplicates?
- No. Existing alerts are detected and skipped, and a reconciliation sweep removes accidental extras.
Keep reading
TradingView webhook automation: from alert to exchange order
Everything about automating TradingView: alert types, webhook JSON, plan limits, building hundreds of alerts with the Chrome extension, managing them, and executing on 30 exchanges and brokers, paper first.
alertcondition() vs alert() vs strategy alerts in TradingView
The three ways a TradingView script can trigger alerts, how each behaves, which one to choose for automation, and how the TensorTrader extension detects them.
Filter, sort and bulk-delete TradingView alerts from one panel
How the TensorTrader extension’s Alerts tab filters TradingView alerts by token, exchange, timeframe, study and status, and enables, disables or deletes them in bulk.
Batch Build: strategies, indicators and multi-condition alerts in the TensorTrader extension
How the extension's Batch Create wizard turns one indicator or strategy into dozens of TradingView alerts: signal sources, AND-combined indicators, variable alignment, DCA across timeframes, leverage modes and duplicate-proof runs.
Not financial advice. Performance figures are TensorTrader testnet or backtest results with the method stated; past results do not predict future returns.