diff --git a/electrum/lnworker.py b/electrum/lnworker.py
index a79380f8e..4d363dd06 100644
--- a/electrum/lnworker.py
+++ b/electrum/lnworker.py
@@ -839,8 +839,13 @@ class LNWallet(LNWorker):
         channels_db[chan.channel_id.hex()] = chan.storage
         for addr in chan.get_wallet_addresses_channel_might_want_reserved():
             self.wallet.set_reserved_state_of_address(addr, reserved=True)
-        self.save_channel(chan)
-        self.wallet.save_backup()
+        try:
+            self.save_channel(chan)
+            self.wallet.save_backup()
+        except:
+            chan.set_state(ChannelState.REDEEMED)
+            self.remove_channel(chan.channel_id)
+            raise
 
     def mktx_for_open_channel(self, *, coins: Sequence[PartialTxInput], funding_sat: int,
                               fee_est=None) -> PartialTransaction: