diff --git a/lib/wallets/wallet/mixins/cash_fusion.dart b/lib/wallets/wallet/mixins/cash_fusion.dart
index 992e9e109..44e2c9c67 100644
--- a/lib/wallets/wallet/mixins/cash_fusion.dart
+++ b/lib/wallets/wallet/mixins/cash_fusion.dart
@@ -696,6 +696,10 @@ mixin CashFusion on CoinControl, ElectrumX {
 
         // Fuse UTXOs.
         try {
+          if (coinList.isEmpty) {
+            throw Exception("Started with no coins");
+          }
+
           await _mainFusionObject!.fuse(
             inputsFromWallet: coinList,
             network: cryptoCurrency.networkParams,
@@ -723,6 +727,16 @@ mixin CashFusion on CoinControl, ElectrumX {
           // Do the same for the UI state.
           _uiState?.incrementFusionRoundsFailed();
 
+          // If we have no coins, stop trying.
+          if (coinList.isEmpty ||
+              e.toString().contains("Started with no coins")) {
+            _updateStatus(
+                status: fusion.FusionStatus.failed,
+                info: "Started with no coins, stopping.");
+            _stopRequested = true;
+            _uiState?.setFailed(true, shouldNotify: true);
+          }
+
           // If we fail too many times in a row, stop trying.
           if (_failedFuseCount >= maxFailedFuseCount) {
             _updateStatus(