Solana - Dropped Transactions and Workarounds
In general terms, the Solana network has a handful of particularities in how transactions are confirmed and added to a block. Furthermore, the Solana network has multiple reasons for a transaction to get dropped, some of them challenging to troubleshoot.
This article covers the most frequent reasons for a Solana transaction to get dropped and provides some practical workarounds.
Why Solana Transactions Are Dropped
1. Block Capacity and Account Write Locks
Each block on the Solana network has a limited capacity. If a transaction does not fit into the scheduled block, it can be dropped. Additionally, if an account involved in the transaction is already write-locked by another transaction, it will not be included in the current block.
2. Network Congestion
The Solana network can experience high volumes of transactions, particularly during peak times. Validators can only accept a certain amount of transactions per second. If the incoming transaction rate exceeds this capacity, some transactions will inevitably be dropped.
3. RPC Node Latency
The Solana Remote Procedure Call (RPC) nodes that a transaction is sent to might experience latency. If nodes are slow in forwarding transactions to the network or do not correctly forward them to the current leader, transactions can be dropped.
4. Minor and Major forks
The Solana network does not wait for all validators to agree on a newly produced block before the next block is produced. Because of that, it’s common for two different blocks to be chained to the same parent block. In those situations, we call each conflicting chain a “fork.”
When there are forks, only one fork will be finalized by the cluster and the abandoned blocks in competing forks are all discarded. If your transaction was part of a discarded block, it will get dropped. Additional information on Solana forks is available in the Official Solana documentation.
Workarounds
Resubmit Transactions
The recommended approach is persistence.
Continuously resubmitting your transaction increases the chances of it being included in a block. While this method may seem crude, it can be effective in ensuring that your transaction eventually gets processed.
This is the expected method encouraged by the Solana Consortium.
Mitigating RPC Node Latency
At Tatum, we ensure that our Solana nodes are optimized for low latency to reduce the chances of transaction drops. If you notice a persistent pattern within a day of dropped transactions, reach out to our Support team.
Updated 5 months ago