nautechsystems/nautilus_trader · error · anyhow::Error

invalid commission='{raw_commission}': {e}

Error message

invalid commission='{raw_commission}': {e}

What it means

Error "invalid commission='{raw_commission}': {e}" thrown in nautechsystems/nautilus_trader.

Source

Thrown at crates/adapters/binance/src/futures/websocket/streams/parse_exec.rs:180

///
/// Returns an error if venue commission or fee fallback values cannot be
/// parsed or converted to `Money`.
pub fn resolve_commission(
    order: &OrderUpdateData,
    last_qty: Quantity,
    last_px: Price,
    taker_fee: Option<Decimal>,
    quote_currency: Option<Currency>,
    bnfcr_currency: Currency,
) -> anyhow::Result<Money> {
    if order.commission.is_some() || order.commission_asset.is_some() {
        let raw_commission = order.commission.as_deref().unwrap_or("0");
        let amount = parse_required_decimal(raw_commission, "commission")?;
        let currency = order.commission_asset.as_ref().map_or(bnfcr_currency, |a| {
            normalize_futures_asset(a.as_str(), bnfcr_currency)
        });
        Money::from_decimal(amount, currency)
            .map_err(|e| anyhow::anyhow!("invalid commission='{raw_commission}': {e}"))
    } else if let Some(fee) = taker_fee {
        let currency = quote_currency.unwrap_or_else(Currency::USDT);
        let notional = last_qty
            .as_decimal()
            .checked_mul(last_px.as_decimal())
            .ok_or_else(|| {
                anyhow::anyhow!(
                    "invalid fee notional for last_qty='{last_qty}' and last_px='{last_px}': multiplication overflow",
                )
            })?;
        let amount = fee.checked_mul(notional).ok_or_else(|| {
            anyhow::anyhow!(
                "invalid fee amount for taker_fee='{fee}' and notional='{notional}': multiplication overflow"
            )
        })?;
        Money::from_decimal(amount, currency)
            .map_err(|e| anyhow::anyhow!("invalid fee amount='{amount}': {e}"))
    } else {

View on GitHub (pinned to a4b06ed870)

When it happens

Trigger: Thrown at crates/adapters/binance/src/futures/websocket/streams/parse_exec.rs:180 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of nautechsystems/nautilus_trader@a4b06ed870 (2026-08-16). Data as JSON: /api/errors/1e279d875190a932. Report an issue: GitHub.