RPC errors · eth_sendRawTransaction

typed transaction too short / failed to decode signed transaction

What it means

The node could not decode the bytes you sent as a signed transaction, so it never got as far as checking the signature, nonce or balance. Typed (EIP-2718) transactions start with a type byte (0x01, 0x02, 0x03, 0x04) followed by an RLP payload; "too short" means the payload after the type byte is missing or truncated.

OP Stack chains phrase the same failure as "failed to decode signed transaction"; other clients say "short input" or "decode transaction failed". The cause is the same: what arrived is not a complete serialized, signed transaction.

The exact messages, and where we saw them

Returned by real upstream nodes when we triggered this error on 2026-09-24 through our endpoint on each chain we serve.

failed to decode signed transaction
Code -32602. Seen on 11 chains: Berachain, Fraxtal, Hyperliquid, Ink, Optimism, Plasma, Soneium, Telos EVM, Tempo, Unichain, Zora.
typed transaction too short
Code -32602. Seen on 2 chains: Boba Network, Celo.
decode transaction failed
Code -32603. Seen on 2 chains: Astar, peaq.
short input: 1
Code -32000. Seen on 2 chains: Ethereum, Polygon zkEVM.
reading transaction object failed - rawTx: 0x00, error: error unmarshalling
Code -32600. Seen on 2 chains: Arc, Base.

How to fix it

  • Send the output of your library's serialize/sign step, hex-encoded with a 0x prefix: signTransaction in viem/ethers, raw_transaction from web3.py's sign_transaction.
  • Check for accidental truncation (logging or string-slicing the raw hex), double 0x prefixes, or sending the transaction hash instead of the raw transaction.
  • If you build transactions by hand, confirm the type byte matches the fields you serialized (an EIP-1559 0x02 payload with legacy fields will not decode).

Related