nautechsystems/nautilus_trader · error

Persisted transaction {tx_hash} does not match the signed by

Error message

Persisted transaction {tx_hash} does not match the signed bytes

What it means

Integrity check after persisting a signed transaction: reopening the stored envelope yields bytes that differ from the signed transaction, meaning the persisted record is not the signed payload and must not be broadcast.

Source

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

                prepared.intent_id,
                self.chain_id,
                &transaction_hash,
                &envelope,
            )
            .await
        .map_err(|e| {
            anyhow::anyhow!(
                "Failed to persist transaction {tx_hash}: {e}; the in-flight slot stays occupied"
            )
        })?;
        let stored = open_execution_payload(
            &self.payload_keys,
            policy,
            &intent,
            &row,
            "initial persistence",
        )?;
        anyhow::ensure!(
            stored == prepared.raw_tx,
            "Persisted transaction {tx_hash} does not match the signed bytes"
        );
        Ok(())
    }

    fn payload_policy(&self) -> PayloadPolicy {
        PayloadPolicy {
            chain_id: self.chain_id,
            signer: self.wallet_address,
            gas_limit: self.gas_limit,
            max_fee_per_gas: self.max_fee_per_gas_wei,
        }
    }

    async fn authorize_rebroadcast(
        &self,
        prepared: &PreparedTransaction,

View on GitHub (pinned to 18893faf8b)

Solutions

  1. Re-sign and re-persist the transaction
  2. Investigate envelope sealing / payload-key configuration for the mismatch
Defensive patterns

Strategy: validation

When it happens

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