{"record":{"id":"ac05f88e551870fc","repo":"nautechsystems/nautilus_trader","slug":"market-orders-on-betfair-are-only-supported-with-a","errorCode":null,"errorMessage":"Market orders on Betfair are only supported with AtTheClose time in force (BSP MarketOnClose)","messagePattern":"Market orders on Betfair are only supported with AtTheClose time in force \\(BSP MarketOnClose\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/betfair/src/execution.rs","lineNumber":3419,"sourceCode":"                handicap,\n                side,\n                limit_order: Some(LimitOrder {\n                    size,\n                    price,\n                    persistence_type,\n                    time_in_force,\n                    min_fill_size,\n                    bet_target_type: None,\n                    bet_target_size: None,\n                }),\n                limit_on_close_order: None,\n                market_on_close_order: None,\n                customer_order_ref,\n            })\n        }\n        OrderType::Market => {\n            if order.time_in_force() != TimeInForce::AtTheClose {\n                anyhow::bail!(\n                    \"Market orders on Betfair are only supported with AtTheClose \\\n                     time in force (BSP MarketOnClose)\"\n                );\n            }\n\n            Ok(PlaceInstruction {\n                order_type: BetfairOrderType::MarketOnClose,\n                selection_id,\n                handicap,\n                side,\n                limit_order: None,\n                limit_on_close_order: None,\n                market_on_close_order: Some(MarketOnCloseOrder { liability: size }),\n                customer_order_ref,\n            })\n        }\n        other => anyhow::bail!(\"Unsupported order type for Betfair: {other:?}\"),\n    }","sourceCodeStart":3401,"sourceCodeEnd":3437,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/betfair/src/execution.rs#L3401-L3437","documentation":"Betfair only supports market orders as BSP MarketOnClose bets, which require TimeInForce::AtTheClose. When converting an order to a PlaceInstruction, a Market order with any other time in force is rejected with this error.","triggerScenarios":"submitting a SubmitOrder with OrderType::Market and time_in_force not equal to AtTheClose (e.g. GTC, IOC, or None) to the Betfair execution client.","commonSituations":"Reusing a generic strategy that emits plain market orders against a Betfair venue; forgetting that Betfair 'market' means MarketOnClose; migrating code from a FX/crypto adapter.","solutions":["Use OrderType::Market only with TimeInForce::AtTheClose (BSP MarketOnClose bet)","For continuous markets, switch to Limit orders (Betfair's native order type)","Use OrderType::MarketOnClose (MarketOnCloseOrder with liability) if that is the intent"],"exampleFix":"// before\nlet order = order_factory.market(\n    instrument_id, OrderSide::Buy, qty, TimeInForce::Gtc, ...\n);\n// after\nlet order = order_factory.limit(\n    instrument_id, OrderSide::Buy, qty, price, TimeInForce::Gtc, ...\n);\n// or market with AtTheClose for BSP MarketOnClose","handlingStrategy":"validation","validationCode":"if order.order_type() == OrderType::Market\n    && order.time_in_force() != TimeInForce::AtTheClose {\n    return Err(anyhow!(\"Betfair market orders require AtTheClose TIF\"));\n}","typeGuard":"fn betfair_market_ok(o: &dyn Order) -> bool {\n    o.order_type() != OrderType::Market || o.time_in_force() == Some(TimeInForce::AtTheClose)\n}","tryCatchPattern":"match exec_client.submit_order(&order).await {\n    Err(e) if e.to_string().contains(\"AtTheClose\") => {\n        warn!(\"converting to limit order\");\n    }\n    other => other?,\n}","preventionTips":["On Betfair, use Limit orders for continuous trading; Market only as MarketOnClose (AtTheClose)","Add a pre-submit order-type allowlist per venue in strategy code","Read the Betfair adapter docs on BSP MarketOnClose semantics"],"tags":["betfair","orders","unsupported","time-in-force"],"backgroundTag":"unsupported-operation","analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}