nautechsystems/nautilus_trader · error
Retained execution history has duplicate signer nonce owners
Error message
Retained execution history has duplicate signer nonce ownership
What it means
During verification migration, the retained execution history contains two records claiming ownership of the same signer nonce; this invariant violation (duplicate nonce ownership) would make nonce accounting ambiguous, so migration aborts rather than pick a winner.
Source
Thrown at crates/adapters/blockchain/src/execution/client.rs:5382
self.payload_keys
.as_deref()
.expect("Postgres execution requires payload keys"),
self.payload_policy(),
intent,
hash,
"verification migration",
)?;
authenticated.insert(hash.id, raw);
} else {
anyhow::ensure!(
hash.raw_transaction.is_none() && hash.sealed_transaction.is_none(),
"Unowned replacement hash retains signed bytes"
);
}
}
if let Some(nonce) = intent.nonce {
anyhow::ensure!(
nonce_owners.insert(nonce, intent.id).is_none(),
"Retained execution history has duplicate signer nonce ownership"
);
}
let base_decision = verification_decision(
nonce_verification,
Some(finalized.number),
Some(finalized.number),
);
if !intent.active {
if matches!(intent.status.as_str(), "finalized" | "reverted") {
let expected_marker =
if purpose == TransactionPurpose::Swap && intent.status == "finalized" {
intent.fill_emitted
} else {
intent.terminal_emittedView on GitHub (pinned to 18893faf8b)
Solutions
- Inspect the execution_history rows for the affected signer address and identify which record legitimately owns the nonce.
- Remove or archive the stale/duplicate intent record so nonce ownership is unique.
- Re-run the migration after deduplicating the history.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/adapters/blockchain/src/execution/client.rs:5382 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/91d8596fd0cc795e.
Report an issue: GitHub.