Timing and safety

The guards that keep automation safe: signal age, rate limits, deduplication, retries, and reconnection.

Markdown
Updated Jul 4, 2026

Auto Trader has guards that stop stale signals, runaway alert storms, and duplicate fills. They run automatically on every automation. This page explains what each guard does, so you know why a signal was accepted, delayed, or rejected.

Signal age#

A late entry can fill at a price the signal never meant to trade. So Lune rejects an entry signal that is more than 30 seconds old. Exits are held to a much looser window, because closing a position late is safer than opening one late.

Entry signalsrejected after 30 secondsOptional

An entry older than 30 seconds is rejected, to prevent a stale fill. You can tune this window on the automation.

Exit signalsmuch looser windowOptional

An exit is not age-limited the same way as an entry. It is held to a much looser window, so a close still goes through even after a delay.

Rate limits#

These ceilings are anti-abuse limits, not flow control. They stop a broken alert or a runaway loop, and paying customers never reach them in normal use:

Per strategy60 signals per secondOptional

A published strategy can send up to 60 signals per second. This ceiling stops a runaway strategy loop. It is tunable.

Per webhook secret1,000 signals per secondOptional

Each webhook secret accepts up to 1,000 signals per second. This is an anti-abuse ceiling for the multi-account path.

Per user10,000 signals per secondOptional

Each user accepts up to 10,000 signals per second. Exit and close signals bypass this ceiling, so a close is never dropped.

Two-phase deduplication#

Lune guards against the same signal running twice, even across a service restart:

1
Inflight lock (60 seconds)

When a signal starts running, Lune locks it for 60 seconds so a duplicate cannot run at the same time.

2
Completed mark (5 minutes)

After it finishes, Lune marks it done for 5 minutes so the same signal cannot be reprocessed.

Note

This is about the same signal arriving twice. To control a strategy that sends repeated entries on purpose, see Adds and duplicates.

Retries with backoff#

If a broker rejects or drops an order, Lune retries. You set how many times, with a delay between attempts and exponential backoff so retries ease off instead of piling on. Entry and exit retries are set separately, and exits stay prioritized. See Create an automation.

Delivery and ordering#

Lune uses at-least-once delivery. Every signal is processed at least once, even if a service restarts mid-run. The deduplication above is what keeps at-least-once from turning into a double fill.

Sync Divergence Guard#

If a broker connection drops and your position at the broker no longer matches what Lune expects, the Sync Divergence Guard pauses automation for that account. It rejects new signals and holds failed exit retries until the account reconnects and its positions line up again. Then it heals on its own.

Note

The guard only acts during a connection problem. It never touches manual trading in the Cockpit. When a connection drops, Lune rebuilds your positions from the broker's live state before it resumes any automation.

Next steps#

Was this page helpful?