Skip to content
Troubleshooting & FAQ

Order rejected

How to read the check number on a rejected card, every risk check in plain words, the tradability codes, guidance-rule rejections, and what the PM does with a rejection.

Who it is for
Everyone on the book
Reading time
9 min read
Updated

Every order the PM proposes runs through the 's , in the same order every time, before anything reaches the broker. A rejected card is the checks doing their job: nothing was sent.

Reading the check numbers

In the Inbox, under Decided today, a the risk rules refused reads Refused, by a risk rule and its line says why in plain words ("Order is over the per-order cap."); the check number and the Executor's exact reason, with the numbers that tripped it, are on the order's row in Activity › Orders and in the session's Technical details on Desk, under Orders as the risk rules checked them. The Executor runs every risk check and records every result, but the first failure in table order decides: the reason shown is always the lowest-numbered check that failed, even when later ones failed too.

Activity: orders and fills, agent runs, config changes, alerts and sign-ins on one timeline, filterable by kind and symbol.
Activity: orders and fills, agent runs, config changes, alerts and sign-ins on one timeline, filterable by kind and symbol.

To see the whole row with the check numbers, open Desk › Today. That link opens the latest session with Technical details and Orders as the risk rules checked them already open (from any other session, open those two lines yourself): the first proposal shows its checks as number · name · detail, and Show 18 checks does the same for any other. Green is pass, red is fail, and the header counts "n/18 passed · first failure wins". Activity › Orders keeps the trail for past days.

The risk checks

Numbers are the Moderate defaults (Moderate is exactly the code defaults); yours are on Risk › Limits and Risk › Halts.

1

Paper/live flag matches the running process

What usually trips it
Never on a normal day; a deploy mismatch. Halts.
What to do
Tell your operator
2

Market open, outside the first and last 15 minutes (1 minute for the Executor's own stop and target exits)

What usually trips it
A proposal evaluated after 14:45 CT or on a closed day
What to do
Nothing; premarket ideas wait for 08:45 on their own
3

(codes below)

What usually trips it
, illiquid, under $3, wide spread, name
What to do
See the codes; edit Risk › Universe
4

Long only: a sell must fit the shares you hold that are not already promised to another sell; no buy at all while the book is halted (reduce_only_book)

What usually trips it
A sell bigger than the free position
What to do
Nothing; the PM re-proposes
5

, good for the day

What usually trips it
Never from the PM; a code guard
What to do
Nothing
6

Limit within 1% of the last trade (a protective exit resting above the last trade at its slippage floor passes with a note)

What usually trips it
Price moved since the idea was priced; a missing or invalid quote also fails here first, as no_quote
What to do
Approve re-quotes at the current price; otherwise the PM re-proposes
7

Quote younger than 30 seconds

What usually trips it
Stale market data
What to do
Nothing; the next proposal trades when data is fresh
8

At most $500 per buy order; a sell of shares you hold passes with a note (covered_sell_uncapped)

What usually trips it
An oversized idea
What to do
The PM sizes down; raising the cap is a loosening
9

Resulting position at most 10% of equity

What usually trips it
Adding to a name you already own (open buy orders count)
What to do
Nothing, or trim the name first
10

at most 60% of equity

What usually trips it
The book is nearly fully invested (open buy orders count)
What to do
Nothing; sells always pass
11

At most 6 new orders a day

What usually trips it
A busy day; every order decision today counts (a corrected resubmit or a re-priced exit counts once)
What to do
The next buy waits for tomorrow; a sell that reduces or closes a position still goes out
12

Pattern-day-trader guard under $25,000 (margin accounts; pdt_guard)

What usually trips it
A round trip that would be day trade number 4 in 5 sessions, counted from the Executor's own fills
What to do
Hold the position overnight
13

No buys within 2 days of earnings

What usually trips it
A buy on or right before a report date
What to do
Nothing; sells are unaffected
14

Day's loss not past −$150

What usually trips it
A bad day. Halts; a sell still passes with a note (reduce_only_exit)
What to do
Read the day, then Resume when ready
15

from the high-water mark under 8%

What usually trips it
A bad stretch. Halts; a sell still passes with a note
What to do
Same; consider a lower
16

No second buy of the same symbol within 60 minutes; sells of a held position are never duplicates (covered_sell_repeat)

What usually trips it
The PM repeating itself
What to do
Nothing
17

What usually trips it
Never fails; over the line means the card waits for you. The Executor's own stop and target exits never wait (auto_ok: preauthorized protective exit)
What to do
Decide the card; the dial is on Strategy › Profile › Autonomy
20

Settled funds: never borrow; a cash account spends settled cash only (insufficient_cash, unsettled_funds)

What usually trips it
A buy bigger than free cash, or funded by today's sale proceeds on a cash account (they settle the next session)
What to do
Nothing; the same buy passes next session once the proceeds settle

A missing, zero or crossed quote is one proposal's problem, never a halt: that proposal is rejected with no_quote and a note saying what was wrong with the quote, and the next one trades when the feed is back.

Check 3: the tradability codes

Check 3 reports every failing rule at once, in a fixed order, so one rejection tells the PM everything wrong with a name; the first code decides: profile_unavailable (no data; fails closed), denylisted, not_tradable_asset (not a US exchange-listed stock, ADR or ETF, or not tradable at the broker), halted, leveraged_etf_blocked, price_below_floor (under $3), insufficient_history (under 60 daily bars), illiquid_adv (under $5M traded a day), spread_too_wide (over 50 bps), order_exceeds_adv_pct (over 0.5% of daily dollar volume). Values exactly at a floor or cap pass. Sells are never trapped: an exit only has to pass profile_unavailable, halted and the broker's own tradable flag, so a holding that was delisted can still be sold.

Rejections that are not one of the numbered checks

  • A symbol on hold. When a name you hold opens more than 35% away from yesterday's close with no split or other corporate action on record, the Executor holds it: the reason reads symbol_hold:<SYM>:suspect_corporate_action, every order on that name is rejected on either side and its armed stop is frozen, because trading on a price it cannot explain is worse than waiting. Check the name, then clear the hold on Risk under Symbols on hold with your ; the Executor resumes on its next tick.
  • . A hard constraint (an enforced rule) is enforced by the Executor before the risk checks. The reason reads steering:<note_id>:<kind>, the kind being no_new_buys, max_gross_pct (a tighter gross cap) or blocklist_symbols. Only buys are affected; to lift it, retire the note on Strategy › Guidance. When you add or change a constraint the Executor also sweeps what is already out: a waiting or queued buy card the constraint forbids is rejected with the same reason (marked as swept), and a buy order already resting at the broker is cancelled with that note.
  • On top of your stop. After the price is resolved (the peg, or the re-quote when you approve), a bracket buy whose working limit sits within 25 basis points of its own stop (the minimum stop room, a deployment setting) is not placed: a fill would go straight through the stop. The note begins arrival_breached_stop and gives the working limit, the stop and the floor; the owner gets a "Not placed … the price is on top of your stop" mail; and the PM is woken to re-think the (a fresh stop or no entry) rather than re-propose the same price. If it was your approval's re-quote that landed there, the row reads Rejected, by you.
  • Halt cancelled it. While the book is halted, buy orders resting at the broker are cancelled; the proposal closes as cancelled (Canceled in the Inbox, with the line "Trading was halted.") and its Activity row carries the halt reason. Sells are never cancelled by a halt.
  • Superseded by a newer proposal. One idea per name at a time: when a session proposes a fresh open on a symbol that already has an older one still queued, with the , or waiting for you, the older one is retired as Rejected, with a note beginning superseded_by and the newer proposal's id, and the new card takes its place. An older one you had already approved is never retired; the newcomer is dropped instead.
  • Withdrawn by the PM. A cancel from the PM that names an order not yet at the broker (parked for tomorrow by the 14:48 pass, queued for the window, or waiting for you) closes it as Rejected with a withdrawn_by_analyst note and the reason; nothing was sent.
  • Superseded by a stop. When a stop or target fires, any other sell already resting on that symbol (an earlier trim, say) is cancelled first so its shares are free for the exit; it shows as Canceled with the line "A protective exit for this stock had to go first."
  • Less than one share. Ideas are sized in dollars; the Executor turns the amount into shares at the working price: a fraction of a share where the broker allows fractions of that name, whole shares rounded down where it does not. When a whole-shares-only name costs more than the amount (say $150 of a $450 stock), nothing is sent: the note begins below_one_share_not_fractionable and names the price of one share. Size up to a whole share or pick a name that trades in fractions; most large US stocks and ETFs do.
  • A blocked the name. On servers that declare screens, a buy in a name that fails a screen on Signals is refused and the reason names the screen ("Blocked by Low-vol quality: …"); the same words appear wherever the name is shown. (The older per-algorithm buy block was retired on 11 September 2026; a reason starting algo_confluence on an old row is that.)
  • The broker said no. After every check passes, the broker can still refuse (a symbol restriction, say). A fixable refusal (tick size, whole shares) gets exactly one corrected resubmit under the same verdict; anything else is final. The card reads Rejected with the broker's reason and Overview shows "The broker rejected an order".

Blocked, rejected, expired

Rejected

Meaning
A check, a constraint or the broker refused it; nothing was placed
What next
The PM reads the reason next session

Blocked

Meaning
Trading was halted when the Executor reached a buy or an order-management request; on screen it reads Refused, by a risk rule, with "Trading is halted." as its line. Sells are not blocked by a halt
What next
Resume on Risk; the PM re-proposes

Expired

Meaning
Its closed with no decision (nothing was sent; the Inbox pill reads Expired), or its day order ended unfilled: at the window's end, by a halt (buys only) or because a stop exit superseded it (the pill reads Canceled and the line says which); a new hard constraint stopping it reads Stopped, by guidance
What next
Nothing to undo
Decided today: what went through on its own, what you approved or rejected, and what expired unsent.
Decided today: what went through on its own, what you approved or rejected, and what expired unsent.

The PM hears about it

Every rejection reason, and any note you type when you reject, lands in the decisions ledger of the the PM reads at the start of its next session, so it decides again with the reason in front of it. You never need to explain a rejection to it yourself.