Reading Program Errors in Solscan and Solana FM

Failed transactions still contain useful information. Learn where explorers surface the error and how to map it back to a specific instruction.

Close-up of error log text on a monitor

Start with status and fee

A failed transaction still consumed fees if it reached execution. Note the fee payer debit — this confirms the transaction was processed rather than rejected at ingress for a stale blockhash.

Find the failing instruction index

Explorer error panels usually state something like "Instruction #2 failed." Count instructions from zero in the instruction list. Inner instruction failures reference the outer instruction that invoked them.

Read program logs

Logs appear in execution order. Program-specific log lines often precede the generic error. Token Program errors, for example, may mention insufficient funds or invalid mint before the final code.

Common categories

  • Account constraints — wrong owner, not enough keys, not signer when required
  • Compute budget — exceeded compute unit limit
  • Custom program errors — require the program's IDL or source to decode fully

When to dig deeper

If logs are sparse, simulate the same transaction against the RPC with identical accounts and data. Simulation returns richer error context without spending fees.

For hands-on practice, bring a failed signature to our Transaction Anatomy Workshop.