nautechsystems/nautilus_trader · error

Pool state header changed before signing

Error message

Pool state header changed before signing

What it means

Pre-sign anchor re-verification: the profiler watermark block re-read at signing time differs from the one the swap quote was anchored to, meaning pool state advanced (or reorged) and the quote is stale.

Source

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

            }
        }
    }

    async fn verify_swap_anchors_before_sign(
        &self,
        anchors: &SwapQuoteAnchors,
    ) -> anyhow::Result<Vec<ExecutionVerificationDecision>> {
        let checkpoint = required_verification(
            self.verification.verify_checkpoint().await,
            "pre-sign checkpoint reread",
        )?;
        let watermark = required_verification(
            self.verification
                .verify_block(anchors.watermark.number)
                .await,
            "pre-sign profiler watermark reread",
        )?;
        anyhow::ensure!(
            watermark.value == anchors.watermark,
            "Pool state header changed before signing"
        );
        let ancestry = required_verification(
            self.verification
                .verify_header_window(watermark.value, anchors.state.number)
                .await,
            "pre-sign profiler ancestry reread",
        )?;

        if let Some(last) = ancestry.value.last() {
            anyhow::ensure!(
                *last == anchors.state,
                "Swap decision header changed in the pre-sign ancestry reread"
            );
        } else {
            anyhow::ensure!(
                watermark.value == anchors.state,

View on GitHub (pinned to 18893faf8b)

Solutions

  1. Abort and retry the swap with refreshed anchors
  2. Ensure the signing step happens promptly after quoting
Defensive patterns

Strategy: retry

When it happens

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