nautechsystems/nautilus_trader · error

Pending nonce {} is outside the owned reconciliation range {

Error message

Pending nonce {} is outside the owned reconciliation range {}..={next_nonce}

What it means

Rebroadcast verification guard: the chain's pending nonce for the signer lies outside the expected owned range between the prepared nonce and next_nonce, meaning another source submitted transactions with this wallet; the rebroadcast is aborted.

Source

Thrown at crates/adapters/blockchain/src/execution/client.rs:2916

                    prepared.nonce,
                )
                .await,
            "rebroadcast pending nonce",
        )?;
        decisions.push(verification_decision(&pending_nonce, None, None));
        let receipt_absence = required_verification(
            self.verification
                .verify_receipt_absence(&prepared.tx_hash)
                .await,
            "rebroadcast receipt absence",
        )?;
        decisions.push(verification_decision(&receipt_absence, None, None));

        let next_nonce = prepared
            .nonce
            .checked_add(1)
            .ok_or_else(|| anyhow::anyhow!("Owned signer nonce overflow"))?;
        anyhow::ensure!(
            (prepared.nonce..=next_nonce).contains(&pending_nonce.value),
            "Pending nonce {} is outside the owned reconciliation range {}..={next_nonce}",
            pending_nonce.value,
            prepared.nonce
        );
        anyhow::ensure!(
            (prepared.nonce..=next_nonce).contains(&canonical_nonce.value),
            "Canonical nonce {} is outside the owned reconciliation range {}..={next_nonce}",
            canonical_nonce.value,
            prepared.nonce
        );

        if !receipt_absence.value {
            self.persist_rebroadcast_decisions(intent.id, prepared.nonce, &decisions)
                .await?;
            return Ok(ReconciliationAuthorization::Retain);
        }

View on GitHub (pinned to 18893faf8b)

Solutions

  1. Verify the pending transaction belongs to this wallet
  2. Refresh the owned nonce range from the chain before retrying
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/adapters/blockchain/src/execution/client.rs:2916 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08). Data as JSON: /api/errors/ad66610ad4323a15. Report an issue: GitHub.