# Refusals

Why Forge skipped an entry or a configuration during a run. A refusal is counted in the run's results and the run goes on.

## Entries

| Number | Code | What it means |
|---|---|---|
| 20 | `ORD_MAX_PENDING` | The strategy already has the most pending orders the settings allow, so a new one was not placed. |
| 21 | `ORD_EXPIRED` | A pending order reached its expiry before it filled and was removed. |
| 22 | `ORD_MIN_STOP_DISTANCE` | A stop or target level was closer than the broker's minimum stop distance, measured from the price the order fills at. |
| 23 | `ORD_FREEZE_LEVEL` | The broker's freeze distance refused a change, a cancel or a close of something inside it. It never refuses placing an order. |
| 24 | `ORD_RANGE_GUARD` | The price moved past the range the order allows, so the fill was refused. |
| 25 | `ORD_GAP_REJECT` | The price jumped across the order's level on a gap, and the order's gap rule refuses a fill there. |
| 26 | `ORD_NO_STOP` | The order had no stop, and the settings require one. |
| 27 | `MARGIN_INSUFFICIENT` | There was not enough free margin to open the position. |
| 28 | `SIZE_BELOW_MIN` | The size worked out below the broker's smallest lot, and the settings refuse a size that small. |
| 29 | `SIZE_ABOVE_VOLUME_MAX` | The size worked out above the broker's largest lot, and the settings refuse a size that large. |
| 30 | `SIZE_NO_STOP_DISTANCE` | Sizing from the risk of the trade needs a stop distance, and this entry had none. |
| 31 | `SIZE_ABOVE_MAX_LOTS` | The size was above the lot cap in your own settings. |
| 32 | `BOOK_MAX_CONCURRENT` | The most open positions the settings allow were already open. |
| 33 | `BOOK_MAX_PER_INSTRUMENT` | The most positions the settings allow in one instrument were already open. |
| 34 | `BOOK_MAX_PER_DIRECTION` | The most positions the settings allow in one direction were already open. |
| 35 | `BOOK_MAX_GROSS` | The most gross exposure the settings allow was already reached. |
| 36 | `BOOK_PYRAMID_CAP` | Adding to a position would pass the pyramiding limit. |
| 37 | `COOLDOWN` | The entry came inside the cooldown the settings set after an exit. |
| 38 | `SAME_BAR_REENTRY` | The entry came on the bar a position closed on, which the settings do not allow. |
| 39 | `MAX_TRADES_PER_DAY` | The daily limit on trades had been reached. |
| 40 | `STATE_HALTED` | The account was halted, so no entry was accepted. |
| 41 | `STATE_REDUCE_ONLY` | The account was only allowed to close positions, so a new entry was refused. |
| 42 | `GATE_SESSION` | The entry came outside the trading session the settings allow. |
| 43 | `GATE_HOLIDAY` | The entry came on a holiday the settings respect. |
| 44 | `GATE_WEEKDAY` | The entry came on a weekday the settings exclude. |
| 45 | `GATE_DATE` | The entry came on a date the settings exclude. |
| 46 | `GATE_NEWS` | The entry fell inside a news window your settings block. |
| 47 | `GATE_SPREAD` | The spread was wider than the settings allow for an entry. |
| 48 | `GATE_ATR_LOW` | Volatility, measured by ATR, was below the minimum the settings require. |
| 49 | `GATE_ATR_HIGH` | Volatility, measured by ATR, was above the maximum the settings allow. |
| 50 | `GATE_FILTER` | A filter on the entry blocked it. |
| 51 | `GATE_DIRECTION` | The entry was in a direction the settings do not allow. |
| 52 | `MARGIN_AT_FILL` | Margin was enough when the order was placed and short when it filled. |
| 53 | `BAR_ABSENT` | The entry's instrument had no bar at that time. |

## Configurations

| Number | Code | What it means |
|---|---|---|
| 60 | `TF_TOO_COARSE` | A setting that has no meaning on bars of D1 or coarser is in use on bars that coarse. |
| 61 | `BOOK_TOO_LARGE` | The book settings allow more open positions than one run can hold. |
| 62 | `TRADE_ARRAY_OVERFLOW` | The configuration made more fills than one run can hold. |
| 63 | `PRIOR_NOT_RECONSTITUTABLE` | A run that builds on an earlier result could not rebuild that earlier run's inputs. |
| 64 | `TOO_MANY_INSTRUMENTS` | The configuration trades more symbols than one run can trade. |

## Order checks

| Number | Code | What it means |
|---|---|---|
| 70 | `SIZE_BAD_STEP` | The order's size is not a multiple of the symbol's lot step. |
| 71 | `MARKET_CLOSED` | The order was placed while the symbol's market was closed. |
| 72 | `TRADE_MODE_CLOSE_ONLY` | The broker allows only closing positions in this symbol. |
| 73 | `TRADE_MODE_LONG_ONLY` | The broker allows only buying in this symbol. |
| 74 | `TRADE_MODE_SHORT_ONLY` | The broker allows only selling in this symbol. |
| 75 | `HEDGING_NOT_ALLOWED` | The account does not allow a position opposite to one already open in the same symbol. |
| 76 | `FIFO` | The account's first-in, first-out rule refused the order. |
| 77 | `WARMING_UP` | The order came before the strategy's warm-up bars had passed. |
| 78 | `PROP_RULE` | A prop-firm rule had no room left for the order. |
| 79 | `SIGNAL_STALE` | The signal was older than the age limit when the order was placed. |
| 80 | `ENTRY_BLACKOUT_END` | The entry came inside the blackout before the end of the run. |
| 81 | `VETOED` | The strategy's confirm_entry hook said no. |
| 82 | `CONFIRMATION_NOT_MET` | A stop-limit order's trigger was reached, but its confirmation was not met. |
| 83 | `STOP_LIMIT_MISSED` | A stop-limit order's price moved past its limit before it could fill. |
| 84 | `LEVEL_OUT_OF_RANGE` | A stop or target worked out at or below zero. |
| 85 | `STOP_WOULD_LOOSEN` | A new stop was further away than the one it replaces, while stops may only tighten. |
| 86 | `VOLUME_LIMIT` | An entry would take the open and resting lots of an instrument and side past the lot limit. |
| 87 | `SIZE_ZERO` | A size of exactly zero was asked for, by the size hook or by an order of zero lots. |
| 88 | `BEFORE_OPEN_FROM` | The order was placed before the moment this run starts trading. |
| 89 | `COSTS_EXCEED_STOP` | The trade's costs are larger than the money the stop allows, so the stop cannot be placed. |
| 90 | `MARKET_QUOTE_ONLY` | The market was quoted but not open for trading, so the order was refused. |
| 91 | `NOT_LISTED` | The symbol was not listed at that time, so the order was refused. |
| 92 | `NEWS_CLOSE_DEFERRED` | A news window held this close back until the window ended. |
| 93 | `NEWS_MODIFY_DEFERRED` | A news window held this change to a stop or target back. |
| 94 | `MAX_TRADES_PER_WEEK` | The limit on trades opened in one week was already reached. |
| 95 | `MAX_REQUESTS_PER_DAY` | The limit on order messages in one day was already reached. |
| 96 | `LOSS_LOCK` | Trading was paused after losses, so the entry was not taken. |
| 97 | `STOP_OUT_GUARD` | Trading was paused after stop exits, so the entry was not taken. |
| 98 | `ORDER_KIND_NOT_OFFERED` | The broker does not accept this kind of order on the symbol. |
| 99 | `VALUE_ABOVE_CAP` | The order's value was above the limit set for one order. |
| 100 | `SYMBOL_RESTRICTED` | This symbol is on the run's restricted list, so no new entry was taken. |
| 101 | `DRAWDOWN_LOCK` | Trading was paused after the account fell from its recent high, so the entry was not taken. |

Refusals that stop a whole run are listed under [Error codes](/reference/errors).
