This error occurs when a client submits a transaction that was well-formed but was not included into the ledger due to some other failure. For example, a transaction may fail if:
- The source account for transaction cannot pay the minimum fee.
- The sequence number is incorrect.
- One of the contained operations has failed such as a payment operation that overdraws the paying account.
In almost every case, this error indicates that the transaction submitted in the initial request will never succeed. There is one exception: a transaction that fails with the tx_bad_seq result code (as expressed in the result_code field of the error) may become valid in the future if the sequence number it used was too high.
As with all errors Horizon returns, transaction_failed follows the Problem Details for HTTP APIs draft specification guide and thus has the following attributes: draft specification guide and thus has the following attributes:
|The identifier for the error. This is a URL that can be visited in the browser||URL||Type|
|A short title describing the error||String||Title|
|An HTTP status code that maps to the error||Number||Status|
|A more detailed description of the error||String||Detail|
|A token that uniquely identifies this request. Allows server administrators to correlate a client report with server log files||String||Instance|
In addition, the following additional data is provided in the extras field of the error:
|A base64-encoded representation of the TransactionEnvelope XDR whose failure triggered this response||String||envelope_xdr|
|A base64-encoded representation of the TransactionResult XDR returned by stellar-core when submitting this transactions||String||result_xdr|
|The transaction result code returned by stellar-core||String||result_codes.transaction|
|An array of strings, representing the operation result codes for each operation in the submitted transaction, if available||Array||result_codes.operations|