# Can a valid transaction fail on Radix?

**URL:** <https://radixtalk.com/t/can-a-valid-transaction-fail-on-radix/1000>\
**Category:** Developers\
**Created:** [11 June 2022 17:41 UTC](https://radixtalk.com/t/can-a-valid-transaction-fail-on-radix/1000 "2022-06-11T17:41:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kevinforrestconnors](https://radixtalk.com/user_avatar/radixtalk.com/kevinforrestconnors/32/328_2.png) [@kevinforrestconnors](https://radixtalk.com/u/kevinforrestconnors)\
**Post date:** [11 June 2022 17:41 UTC](https://radixtalk.com/t/can-a-valid-transaction-fail-on-radix/1000/1 "2022-06-11T17:41:32Z")

</div>

I remember reading (in the whitepaper) that Radix uses deterministic consensus, as opposed to Ethereum and many other networks which use probabilistic consensus. So, as long as a transaction is valid (it can actually be submitted because the recipient is valid, the amount of tokens sending is valid, etc.) can it ever fail for any reason?

When submitting transactions through the API they get rejected before actually being sent to the network if they’re invalid e.g. if you don’t have enough XRD. Is there a situation where, say you were using the Core API [https://raw.githubusercontent.com/radixdlt/radixdlt/1.2.2/radixdlt-core/radixdlt/src/main/java/com/radixdlt/api/core/api.yaml](https://raw.githubusercontent.com/radixdlt/radixdlt/1.2.2/radixdlt-core/radixdlt/src/main/java/com/radixdlt/api/core/api.yaml) instead of the Gateway, where you could submit a transaction to the network but it gets rejected/reversed/fails?

---

<div class="post-metadata">

**Author:** ![Mleekko](https://radixtalk.com/user_avatar/radixtalk.com/mleekko/32/17_2.png) [@Mleekko](https://radixtalk.com/u/Mleekko)\
**Post date:** [13 June 2022 07:40 UTC](https://radixtalk.com/t/can-a-valid-transaction-fail-on-radix/1000/10 "2022-06-13T07:40:48Z")

</div>

Yes, 99.9% of `FAILED` transactions get rejected at the Gateway API level.  
There **are** situations when the API thinks that the transaction is OK so it gets submitted to the network just to fail there. An example of how to simulate it - send two conflicting (but different) transactions to different API nodes at the same time. One of them will succeed; another will fail.

However, the failed transactions are not written to the ledger, their status is tracked by the API node that was used to submit it. Here is what it looks like in the `mempool_transactions` table of the Gateway API:

 ![image](https://radixtalk.com/uploads/default/original/1X/b310ec950d170a933855ff1e5beee526f2f77e0e.png)

---

<div class="post-metadata">

**Author:** ![kevinforrestconnors](https://radixtalk.com/user_avatar/radixtalk.com/kevinforrestconnors/32/328_2.png) [@kevinforrestconnors](https://radixtalk.com/u/kevinforrestconnors)\
**Post date:** [13 June 2022 13:11 UTC](https://radixtalk.com/t/can-a-valid-transaction-fail-on-radix/1000/11 "2022-06-13T13:11:24Z")

</div>

Thanks, so if it makes it to the network, it will still fail “immediately”, not after some time like Ethereum?

---

<div class="post-metadata">

**Author:** ![Mleekko](https://radixtalk.com/user_avatar/radixtalk.com/mleekko/32/17_2.png) [@Mleekko](https://radixtalk.com/u/Mleekko)\
**Post date:** [13 June 2022 13:42 UTC](https://radixtalk.com/t/can-a-valid-transaction-fail-on-radix/1000/12 "2022-06-13T13:42:49Z")

</div>

I’m not sure how exactly that part works.
