{"record":{"id":"c566b644b9e2e031","repo":"nautechsystems/nautilus_trader","slug":"independent-swap-quote-changed-before-signing","errorCode":null,"errorMessage":"Independent swap quote changed before signing","messagePattern":"Independent swap quote changed before signing","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/blockchain/src/execution/client.rs","lineNumber":2743,"sourceCode":"                    )\n                    .await,\n                \"pre-sign exact-input quote reread\",\n            )?,\n            SwapQuoteKind::ExactOutput(amount_out) => required_verification(\n                self.verification\n                    .verify_quote_exact_output_single(\n                        &anchors.quote_contract,\n                        anchors.token_in,\n                        anchors.token_out,\n                        amount_out,\n                        anchors.fee,\n                        anchors.state.number,\n                    )\n                    .await,\n                \"pre-sign exact-output quote reread\",\n            )?,\n        };\n        anyhow::ensure!(\n            quote.value == anchors.quote,\n            \"Independent swap quote changed before signing\"\n        );\n        Ok(vec![\n            verification_decision(\n                &checkpoint,\n                Some(checkpoint.value.number),\n                Some(checkpoint.value.number),\n            ),\n            verification_decision(\n                &watermark,\n                Some(anchors.watermark.number),\n                Some(anchors.watermark.number),\n            ),\n            verification_decision(\n                &ancestry,\n                Some(anchors.watermark.number),\n                Some(anchors.state.number),","sourceCodeStart":2725,"sourceCodeEnd":2761,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/blockchain/src/execution/client.rs#L2725-L2761","documentation":"Pre-sign quote re-verification: re-querying the independent swap quote (exact-input or exact-output) at signing time returned a different result than the anchored quote, so the market moved and signing would execute stale terms.","triggerScenarios":"Thrown at crates/adapters/blockchain/src/execution/client.rs:2743 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the swap from a fresh quote","Tighten the interval between quoting and signing"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}