Troubleshooting
The four root causes below are NinjaTrader 8 problems and none of them apply to Tradovate. Skip to Tradovate Copier issues.
Most NT8 Trade Copier issues land on four root causes:
- The answer was in the logs the whole time.
- Another trade copier is running alongside CrossTrade.
- NinjaTrader hasn't been restarted recently.
- An account is authorized to more than one data feed at the same time.
Start here before asking for help. These four solve the bulk of what we see in support.
1. Check your logs first
Every order CrossTrade sees, every command we forward to NT8, and every reply NT8 sends back is logged. If a trade didn't happen the way you expected, the answer is almost always there.
- Alert History (crosstrade.io/docs/getting-started/alert-history). Every TradingView webhook hits this page first. Failed alerts have a built-in help modal explaining the specific error.
- Trade Copier → See Logs button on the Trade Copier dashboard. Shows every copier action, in order, with timestamps. Filter by leader/follower account to narrow it down.
- CrossTrade NT8 Add-On status panel in NT8. Inline log of every order the add-on submitted or rejected, with the reason. If you can see the order failed here, you don't need to guess what went wrong.
- Account Manager monitors (crosstrade.io/docs/account-manager/monitors). If a monitor flattened or blocked your account, it logs which rule fired.
Before you ask for help, screenshot the relevant log line(s). Nine times out of ten the support reply is "your log already shows the answer: it says X" and we go around the loop twice for no reason. Save us both the round-trip.
2. Do not run other trade copiers alongside CrossTrade
If you have Replikanto, Apex Trade Copier, ETP Trade Copier, CopyTrader, the Simple Trade Copier from the NinjaTrader Ecosystem, or any other third-party copier active on the same NinjaTrader accounts as CrossTrade, you will get duplicate fills, conflicting positions, and orders you didn't intend to send.
Each copier sees the same fills and each tries to react. Neither copier is wrong on its own, but the combined behavior is chaos.
If multiple copiers are running on your accounts, we cannot help you diagnose execution issues. The interaction is unbounded and every combination of two copiers reacting to each other's fills produces different symptoms. The only supported configuration is CrossTrade alone as the order-routing layer.
CrossTrade covers the same use cases other copiers do:
- 1:1 or scaled multi-account copying - see Position Sizing
- Leader/follower groups - see Multi-Directional Copying
- Symbol mapping (e.g. ES → MES) - see Instrument Filtering and Replacement
- Prop firm stealth - see Stealth Mode
- Multi-account placement at copier-equivalent speed - see Multi-Account Placement
If you uninstall another copier, restart NinjaTrader so the change actually takes effect.
3. Restart NinjaTrader regularly
NinjaTrader has known memory and stability issues when left running for days at a time. Symptoms we see in support tickets after long uptimes:
- Orders silently rejected without a NinjaTrader error
- P/L reporting drifts from broker truth
- Trade Copier syncs stop firing
- The add-on shows "connected" but commands time out
- Charts freeze; new bars stop printing
Restart NinjaTrader at least once every 48 hours. Restarting daily is even better. CrossTrade shows a yellow uptime warning on the trading pages once you cross that threshold.
This is not a CrossTrade problem we can patch around. NT8 is doing a lot of native-code work (chart rendering, indicator recalc, ATM management, market data buffering) and the longer the process runs the more those subsystems drift. A restart resets everything.
While you're at it: restart the machine once a week if NT8 runs on a dedicated PC or VPS. Windows updates, driver updates, and network stack quirks all benefit from a real reboot, not just a re-launch of NT8.
For more on keeping NT8 healthy, see Optimizing NinjaTrader Performance.
4. Don't authorize a single account to multiple data feeds
If the same NinjaTrader account is authorized to more than one data feed provider (e.g. account 12345 connected through both Feed A and Feed B at the same time), every order you submit through any trade copier gets doubled. NinjaTrader effectively submits the same order once per authorized feed, so a 1-contract order becomes 2 contracts, a 5-contract order becomes 10, and so on.
This behavior affects every NT8 trade copier on the market, not just CrossTrade. It's a quirk of how NinjaTrader routes orders when a single account spans multiple authorized feeds. The duplicate submissions happen inside NinjaTrader before any copier gets involved. We cannot fix this from our side, and neither can any other vendor.
To check: in NinjaTrader, open Connections and confirm each trading account is authorized to exactly one data feed at a time. If an account shows up under two connection profiles, disconnect one of them before placing orders.
If you legitimately need an account on multiple feeds (backup, redundancy, separate environments), only keep one connected at a time when you're trading.
Quick reference
| Symptom | Most likely cause | Where to look |
|---|---|---|
| Trade didn't copy at all | Mode mismatch (order vs execution), Kill Switch on, or follower disconnected from broker | Trade Copier → See Logs |
| Trade copied to the wrong instrument | Missing instrument mapping | Copier config → Instrument Filtering |
| Quantity was wrong on the follower | Ratio / fixed-qty / max-position config | Copier config → Position Sizing |
| Every order fills at 2× (or 3×) the expected size | Account is authorized to multiple data feeds simultaneously; NT8 duplicates the submission | Section 4 above |
| Some orders copied, some didn't | Another copier is also running, or NT8 uptime > 48h | Sections 2 and 3 above |
| Orders fire late | NT8 process is overloaded: too many indicators, charts, or strategies | Close unused charts; restart NT8 |
| Connected, but commands time out | Add-on stuck after long uptime | Restart NT8 |
| Add-on shows disconnected | Network blip, firewall, or expired session | Auto-Reconnect |
| P/L doesn't match my broker | NT8 uptime drift; restart resets the calc | Restart NT8; re-sync follower |
| Auto-Sync isn't correcting positions | Sync interval too long, or follower account excluded from sync | Auto-Sync Engine |
Tradovate Copier issues
The four causes above are NinjaTrader 8 problems. None of them exist on the Tradovate Copier: it runs in CrossTrade's cloud, there is no Add-On, no local platform to restart, and no NT8 data-feed routing to double your orders. Third-party NT8 copiers cannot touch it either.
Start with the copy log, opened with See Logs on the Tradovate Copier page. It records submitted actions, broker rejections, drift warnings and corrections, and skip decisions, with leader and follower order IDs wherever that stage has them. Follower results and copier warnings are also attached to the leader's Alert History entry.
Nothing copied at all
Check the mode first. Order mode does not see manual trades placed inside Tradovate, only CrossTrade webhook commands, so a hand-placed leader trade will never copy in that mode. Use execution mode if you want fills copied whatever produced them. Then confirm the copier is active, both identities are still linked, and the instrument filter allows the symbol.
Fills during a brief disconnect never arrived
Execution-mode fills that land while the copier's connection to Tradovate is down are not replayed afterwards. With drift correction enabled, reconnect runs a bounded catch-up pass instead, so positions converge rather than every missed fill being re-sent. Candidates beyond the per-burst limit wait for later activity.
A symbol replacement did not apply
Symbol replacements only apply to unbracketed market orders. When a replacement is configured and the leader sends a limit, stop, or bracketed order on that instrument, the follower skips the copy rather than placing prices computed for a different contract. This includes ES to MES. Use market leader entries, or enable Fills Only so pending orders are skipped up front.
An inverted follower skipped a trade
Inversion applies to unpriced market entries. Priced and bracketed signal entries are skipped, because absolute entry, stop, and target prices cannot be inverted safely. Inverted followers are also skipped on cancelandbracket for the same reason.
A cancel or change never reached the follower
Signal-mode cancels and changes mirror only orders the copier itself created, using a leader-to-follower order map kept for 7 days. An order placed outside the copier, or one older than the map window, has nothing to mirror to.
Some followers filled and one did not
Follower results are independent by design. Once Tradovate accepts the leader order, a later follower timeout or rejection does not roll the leader back, and one failed follower does not cancel successful copies on the others.
Retrying the original leader signal can duplicate real broker exposure when the first outcome was ambiguous. Read the Copy Log and the Alert History entry first, and correct the specific follower instead.
A copy was skipped as stale
CrossTrade applies a per-identity Tradovate request governor and reserves capacity for liquidations and reconciliation. A fill copy that waits past its copy deadline is skipped rather than entered late, on the basis that a late entry is worse than no entry. Large fan-outs make this more likely, since one leader event creates a broker request per active follower.
The second copier on a pair was rejected
A given leader and follower pair may be linked by one copier only, in either mode. A signal copier and an execution copier on the same pair would copy every webhook entry twice, so the app rejects the second config.
Everything stopped after I re-linked my account
Unlinking any Tradovate identity pauses all Tradovate copiers and monitors before removing the credential, and re-linking does not automatically re-enable them. Re-enable each copier and monitor by hand after a re-link.
Tradovate quick reference
| Symptom | Most likely cause | Where to look |
|---|---|---|
| Manual leader trades never copy | Copier is in order mode, which only sees webhook commands | Copier config, switch to execution mode |
| Nothing copies at all | Copier inactive, identity unlinked, or instrument filter excludes the symbol | Copy Log, My Account → Brokers |
| Gap in copies around a disconnect | Offline fills are not replayed | Enable drift correction; Copy Log |
| Replacement instrument not used | Leader order was limit, stop, or bracketed | Copy Log skip entry |
| Follower size drifts by a fraction | Execution-mode signed carry, converges across entries and exits | Copy Log |
| Fixed-qty follower stayed drifted mid-position | Fixed-qty followers only auto-correct to flat | Copy Log drift warning |
| One follower missing from an otherwise good copy | Independent follower results, timeout or rejection | Copy Log per-follower outcome |
| Copy skipped as stale | Past the copy deadline under request load | Copy Log |
| Cannot create a second copier on a pair | One copier per leader/follower pair | Existing copier config |
| All copiers paused | Identity was unlinked and re-linked | Re-enable each copier |
Related docs
- Trade Copier Overview - full feature reference
- Tradovate Copier - modes, per-follower settings, and the NT8 parity table
- Trade Copier FAQs - most-asked questions about setup, prop firm usage, and behavior
- Trade Copier Configuration - every field in the copier config modal
- Account Manager FAQ - monitor, kill switch, and account-state questions
- Webhooks Troubleshooting - for signal-routing issues that aren't copier-specific
- Connection Health - Auto-Reconnect and Data Watchdog
Still stuck?
Email us at support@crosstrade.io with:
- Details about what happened and when
- The exact alert / command that misbehaved (copy from Alert History)
- The log line from the add-on or copier showing what happened
- On NinjaTrader 8: NT8 uptime at the time (visible in the dashboard NT8 Health Monitor), and confirmation that no other copier is installed in NT8
- On Tradovate: the copier mode, the leader and follower accounts, and the Copy Log lines with their leader and follower order IDs