nautechsystems/nautilus_trader · error · anyhow::Error
Binance Futures open algo order has unresolved instrument {i
Error message
Binance Futures open algo order has unresolved instrument {instrument_id} What it means
Fires in generate_open_order_status_reports when an open algo order's instrument cannot be resolved via HTTP reconciliation (typically because it is out of scope for the client), so no reliable status report can be produced for that order.
Source
Thrown at crates/adapters/binance/src/futures/execution.rs:1179
reports.push(OpenOrderStatusReport {
report: with_venue_position_id(report, venue_position_id),
quantity_free_close_position_side: None,
});
}
}
for algo_order in algo_orders {
let instrument_id = instrument_id
.unwrap_or_else(|| format_instrument_id(&algo_order.symbol, self.product_type));
let Some(instrument) = self.http_client.instrument_reconciliation(&instrument_id)
else {
if self.is_instrument_out_of_scope(instrument_id) {
log::debug!(
"Dropping out-of-scope Binance Futures open algo order for instrument {instrument_id}"
);
continue;
}
anyhow::bail!(
"Binance Futures open algo order has unresolved instrument {instrument_id}"
);
};
if let Ok(report) = algo_order.to_order_status_report(
self.core.account_id,
instrument.id(),
instrument.price_precision(),
instrument.size_precision(),
ts_init,
) {
let venue_position_id = make_venue_position_id(
self.config.use_position_ids,
instrument.id(),
algo_order.position_side,
)?;
reports.push(OpenOrderStatusReport {
report: with_venue_position_id(report, venue_position_id),View on GitHub (pinned to 18893faf8b)
Solutions
- Load the missing instrument into the cache before generating reports.
- Update scope configuration so the algo order's symbol is included (or intentionally dropped as out-of-scope).
- Cancel orphaned algo orders on the exchange that the client doesn't track.
Defensive patterns
Strategy: validation
Validate before calling
if cache.instrument(&instrument_id).is_none() {
log::warn!("skipping open algo order for untracked instrument {instrument_id}");
continue;
} Prevention
- Include conditional/algo order symbols when priming the instrument cache.
- Clean up exchange-side algo orders created outside the client.
- Audit scope configuration after listing new symbols.
When it happens
Trigger: generate_open_order_status_reports iterates open algo orders; an algo order's symbol lacks a cached instrument and is_instrument_out_of_scope is false.
Common situations: Conditional orders created outside this client (e.g. via exchange UI) for symbols not in the cache; product-type scope excluding symbols with existing algo orders.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- Binance Futures open order request has unresolved instrument
- Binance Futures open order has unresolved instrument {instru
- Instrument not found in cache: {symbol}
- Binance Futures position has unresolved instrument {instrume
- `close_position` cannot be combined with `reduce_only` on Bi
AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08).
Data as JSON: /api/errors/229e88efbbe02934.
Report an issue: GitHub.