{"record":{"id":"bc71925ade27438a","repo":"nautechsystems/nautilus_trader","slug":"verified-decision-block-has-no-base-fee","errorCode":null,"errorMessage":"Verified decision block {} has no base fee","messagePattern":"Verified decision block (.+?) has no base fee","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/blockchain/src/execution/client.rs","lineNumber":2342,"sourceCode":"            );\n        }\n        let decision_ancestry = self.verify_decision_ancestry(decision_header).await?;\n        validate_transaction_authorization(authorization, to, value, &input)?;\n        let deployment_verification = required_verification(\n            self.verification\n                .verify_deployment_manifest(&self.deployment_manifest, decision_header.number)\n                .await,\n            \"pre-sign deployment manifest\",\n        )?;\n        let authorization_decisions = match authorization {\n            Some(authorization) => {\n                self.verify_transaction_authorization(authorization, decision_header.number)\n                    .await?\n            }\n            None => Vec::new(),\n        };\n        let base_fee_per_gas_wei = decision_header.base_fee_per_gas.ok_or_else(|| {\n            anyhow::anyhow!(\n                \"Verified decision block {} has no base fee\",\n                decision_header.number\n            )\n        })?;\n        let priority_fee_verification = required_verification(\n            self.verification.verify_priority_fee().await,\n            \"pre-sign priority fee\",\n        )?;\n        let priority_fee_per_gas_wei = priority_fee_verification.value;\n        let (max_fee_per_gas, max_priority_fee_per_gas) = derive_fees(\n            base_fee_per_gas_wei,\n            priority_fee_per_gas_wei,\n            self.base_fee_buffer_bps,\n            u128::from(self.max_fee_per_gas_wei),\n        )?;\n        let gas_estimate_verification = required_verification(\n            self.verification\n                .verify_gas_estimate(","sourceCodeStart":2324,"sourceCodeEnd":2360,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/blockchain/src/execution/client.rs#L2324-L2360","documentation":"After verifying the decision block header, the client requires `base_fee_per_gas` to compute EIP-1559 max fee/priority fee. If the verified header carries no base fee (None), fee derivation is impossible, so the client aborts the pre-sign flow naming the offending block number.","triggerScenarios":"`prepare_and_sign_with_anchors` obtains a decision header whose `base_fee_per_gas` field is None — e.g. verifying a pre-London (pre-EIP-1559) block, a header source that omits the field, or a genesis/legacy header used as the decision block.","commonSituations":"Pointing the client at a chain that never activated EIP-1559 (or an old archive snapshot); a verification provider returning stripped/partial headers; misconfigured node or RPC that serves legacy block format.","solutions":["Use a chain/RPC that supports EIP-1559 (London hardfork activated) so headers include base_fee_per_gas.","Check the verification provider configuration so full modern headers are returned, not legacy/stripped ones.","Ensure the decision block is a recent block, not genesis or a pre-London historical block.","Update the node/client software if it predates EIP-1559 header support."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"pub fn header_is_eip1559(h: &VerifiedBlockHeader) -> bool {\n    h.base_fee_per_gas.is_some()\n}","typeGuard":"fn has_base_fee(h: &VerifiedBlockHeader) -> Option<u64> { h.base_fee_per_gas }","tryCatchPattern":"match result {\n    Err(e) if e.to_string().contains(\"has no base fee\") => return Err(config_error(\"chain must have EIP-1559 activated\")),\n    other => other,\n}","preventionTips":["Deploy only on EIP-1559-capable chains (London+).","Validate in startup config that the target chain post-dates London.","Use a verification provider that returns full modern headers."],"tags":["blockchain","eip-1559","missing-field","fee-estimation"],"backgroundTag":"empty-required-field","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"}