nautechsystems/nautilus_trader · error

Owned signer nonce overflow

Error message

Owned signer nonce overflow

What it means

The owned signer's next nonce computed during rebroadcast handling does not fit the nonce counter (adding to the tracked nonce would overflow); the wallet has consumed an implausible nonce sequence and the rebroadcast path refuses to continue.

Source

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

                    &self.wallet_address,
                    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. Investigate the wallet's nonce state on-chain
  2. Re-sync owned nonce data before retrying rebroadcast
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/adapters/blockchain/src/execution/client.rs:2915 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/960c69d3674b2414. Report an issue: GitHub.