diff --git a/clive/__private/ui/screens/transaction_summary/transaction_summary.py b/clive/__private/ui/screens/transaction_summary/transaction_summary.py
index b5f98041222ea7e0d2b0af44863cc1323d607c8f..052e59a7d8862866aadbc5cc891a19bb0b411d36 100644
--- a/clive/__private/ui/screens/transaction_summary/transaction_summary.py
+++ b/clive/__private/ui/screens/transaction_summary/transaction_summary.py
@@ -304,6 +304,9 @@ class TransactionSummary(BaseScreen):
             broadcast=True,
         )
         if wrapper.error_occurred:
+            # recompose key container in case fail of broadcast when transaction was already signed
+            if transaction.is_signed:
+                await self.key_container.recompose()
             self.notify("Transaction broadcast failed. Please try again.", severity="error")
             return