Solana - KMS_FAILED_TX with Successful Transactions

When broadcasting Solana transactions via Tatum's Key Management System (KMS), you may encounter a KMS_FAILED_TX notification indicating that a transaction has failed. However, despite this error, the transaction may still be included in a block on the Solana network.

Example notification:

{
  "signatureId":"#####",
  "error":"Error: Transaction not confirmed.",
  "subscriptionType":"KMS_FAILED_TX"
}

Why Does This Happen?

Tatum's core API and SDK impose a 60-second limit for waiting on transaction confirmation from the Solana network. If the transaction is not confirmed within this time frame, Tatum will return an error stating the transaction wasn't confirmed.

However, the Solana network may still process the transaction after the 60-second window. This means the transaction could eventually be confirmed or dropped even after you receive the failure notification.

What Should You Do Next?

If you receive a KMS_FAILED_TX notification, consider the following steps:

  1. Check the Transaction Status: Use a Solana block explorer or Solana's native tools to check if the transaction was confirmed in a block after the error notification. The signatureId provided in the error can help you track the transaction.
  2. Wait for Finality: Solana is a fast network, but in rare cases, it might take longer than expected to confirm transactions. Waiting a few minutes before retrying or checking the status can help avoid unnecessary duplication.
  3. Retry if Necessary: If the transaction was dropped, you can retry broadcasting the transaction.

πŸ“˜

Additional information is available in this article.