FuelLabs/fuel-core · error · anyhow::Error

Tendermint RPC response has no result

Error message

Tendermint RPC response has no result

What it means

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.

Source

Thrown at crates/services/shared-sequencer/src/http_api.rs:158

            "Tendermint RPC response uses unsupported JSON-RPC version {}",
            response.jsonrpc
        );
    }
    if response.id != request.id {
        anyhow::bail!(
            "Tendermint RPC response ID {} does not match request ID {}",
            response.id,
            request.id
        );
    }

    if let Some(error) = response.error {
        anyhow::bail!("Tendermint RPC error: {error}");
    }

    response
        .result
        .ok_or_else(|| anyhow::anyhow!("Tendermint RPC response has no result"))
}

#[derive(Copy, Clone, Debug, Default)]
pub struct AccountMetadata {
    pub account_number: u64,
    pub sequence: u64,
}

#[derive(Clone, Debug, serde::Serialize)]
pub struct SimulateRequest {
    pub tx_bytes: String,
}

pub async fn estimate_transaction(
    http: &reqwest::Client,
    api_url: &str,
    tx_bytes: Vec<u8>,
) -> anyhow::Result<u64> {

View on GitHub (pinned to add100d30d)

Solutions

  1. Log the raw response text to see what the node actually returned in place of result
  2. Confirm the Tendermint method invoked really returns a non-optional result of type T
  3. Retry once — some proxies intermittently emit empty envelopes
  4. If the endpoint legitimately returns null results, model T as Option<T> at the call site instead of failing here
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/services/shared-sequencer/src/http_api.rs:158 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of FuelLabs/fuel-core@add100d30d (2026-09-05). Data as JSON: /api/errors/af24bb52d8a926e6. Report an issue: GitHub.