{"record":{"id":"af24bb52d8a926e6","repo":"FuelLabs/fuel-core","slug":"tendermint-rpc-response-has-no-result","errorCode":null,"errorMessage":"Tendermint RPC response has no result","messagePattern":"Tendermint RPC response has no result","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/services/shared-sequencer/src/http_api.rs","lineNumber":158,"sourceCode":"            \"Tendermint RPC response uses unsupported JSON-RPC version {}\",\n            response.jsonrpc\n        );\n    }\n    if response.id != request.id {\n        anyhow::bail!(\n            \"Tendermint RPC response ID {} does not match request ID {}\",\n            response.id,\n            request.id\n        );\n    }\n\n    if let Some(error) = response.error {\n        anyhow::bail!(\"Tendermint RPC error: {error}\");\n    }\n\n    response\n        .result\n        .ok_or_else(|| anyhow::anyhow!(\"Tendermint RPC response has no result\"))\n}\n\n#[derive(Copy, Clone, Debug, Default)]\npub struct AccountMetadata {\n    pub account_number: u64,\n    pub sequence: u64,\n}\n\n#[derive(Clone, Debug, serde::Serialize)]\npub struct SimulateRequest {\n    pub tx_bytes: String,\n}\n\npub async fn estimate_transaction(\n    http: &reqwest::Client,\n    api_url: &str,\n    tx_bytes: Vec<u8>,\n) -> anyhow::Result<u64> {","sourceCodeStart":140,"sourceCodeEnd":176,"githubUrl":"https://github.com/FuelLabs/fuel-core/blob/add100d30d21498e8528c46be8567fbd2ea019af/crates/services/shared-sequencer/src/http_api.rs#L140-L176","documentation":"Malformed-success guard in rpc(): the JSON-RPC envelope passed all protocol checks (200 status, jsonrpc 2.0, matching id, no error field) but the result member is absent/null, so there is nothing to deserialize into T. The server replied success-without-payload — a non-conformant or degenerate response, not a transport or application error. Occurs when a proxy strips the result or the method returns an unexpected null.","triggerScenarios":"Thrown at crates/services/shared-sequencer/src/http_api.rs:158 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Log the raw response text to see what the node actually returned in place of result","Confirm the Tendermint method invoked really returns a non-optional result of type T","Retry once — some proxies intermittently emit empty envelopes","If the endpoint legitimately returns null results, model T as Option<T> at the call site instead of failing here"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"add100d30d21498e8528c46be8567fbd2ea019af","analyzedAt":"2026-09-05T18:46:12.018Z","contentChangedAt":"2026-09-05T18:46:12.018Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}