nautechsystems/nautilus_trader · error

invalid {field} precision: {e}

Error message

invalid {field} precision: {e}

What it means

Error "invalid {field} precision: {e}" thrown in nautechsystems/nautilus_trader.

Source

Thrown at crates/adapters/binance/src/futures/http/models.rs:1756

    raw.filter(|price| !price.is_empty())
        .map(|price| parse_positive_price_at_precision(price, price_precision, "avg_price"))
        .transpose()
        .map(|price| price.flatten().map(|price| price.as_decimal()))
}

fn parse_positive_price_at_precision(
    raw: &str,
    precision: u8,
    field: &str,
) -> anyhow::Result<Option<Price>> {
    let decimal = parse_required_decimal(raw, field)?;
    if decimal <= Decimal::ZERO {
        return Ok(None);
    }

    Price::from_decimal_dp(decimal, precision)
        .map(Some)
        .map_err(|e| anyhow::anyhow!("invalid {field} precision: {e}"))
}

fn parse_callback_rate_basis_points(raw: &str) -> anyhow::Result<Option<Decimal>> {
    let rate = parse_required_decimal(raw, "callback_rate")?;
    if rate <= Decimal::ZERO {
        return Ok(None);
    }

    rate.checked_mul(Decimal::from(100))
        .map(Some)
        .ok_or_else(|| anyhow::anyhow!("invalid callback_rate='{raw}': multiplication overflow"))
}

fn parse_working_type(working_type: Option<BinanceWorkingType>) -> TriggerType {
    match working_type {
        Some(BinanceWorkingType::ContractPrice) => TriggerType::LastPrice,
        Some(BinanceWorkingType::MarkPrice) => TriggerType::MarkPrice,
        Some(BinanceWorkingType::Unknown) | None => TriggerType::Default,

View on GitHub (pinned to a4b06ed870)

When it happens

Trigger: Thrown at crates/adapters/binance/src/futures/http/models.rs:1756 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/9eed19af5be93beb. Report an issue: GitHub.