diff --git a/src/ska/logging/transactions.py b/src/ska/logging/transactions.py
index acf865f5d7cb6375482dcd12194199b375d99156..049821bec2b081b26b9cb5e0b12e134df9f047d0 100644
--- a/src/ska/logging/transactions.py
+++ b/src/ska/logging/transactions.py
@@ -72,10 +72,7 @@ class Transaction:
         self._params = params
         self._transaction_id_key = transaction_id_key
 
-        self._transaction_id = transaction_id if self._is_valid_id(transaction_id) else ""
-
-        if not self._transaction_id:
-            self._transaction_id = self._get_from_params_or_generate_new_id()
+        self._transaction_id = self._get_id_from_params_or_generate_new_id(transaction_id)
 
         if transaction_id and params.get(self._transaction_id_key):
             self.logger.info(
@@ -100,20 +97,27 @@ class Transaction:
         if exc_type:
             raise
 
-    def _get_from_params_or_generate_new_id(self):
-        """Use the transaction_id_key to get the transaction ID from the parameters
-        or generate a new one if it's not there.
+    def _get_id_from_params_or_generate_new_id(self, transaction_id):
+        """At first use the transaction_id passed or use the transaction_id_key to get the
+        transaction ID from the parameters or generate a new one if it's not there.
+
+        Parameters
+        ----------
+        transaction_id : [String]
+            [The transaction ID]
 
         Returns
         -------
         [String]
             [transaction ID]
         """
-        transaction_id = self._params.get(self._transaction_id_key)
-        if not self._is_valid_id(transaction_id):
-            transaction_id = self._generate_new_id()
-            self.logger.info(f"Generated transaction ID {transaction_id}")
-        return transaction_id
+        _transaction_id = (
+            transaction_id if transaction_id else self._params.get(self._transaction_id_key)
+        )
+        if not self._is_valid_id(_transaction_id):
+            _transaction_id = self._generate_new_id()
+            self.logger.info(f"Generated transaction ID {_transaction_id}")
+        return _transaction_id
 
     def _is_valid_id(self, transaction_id):
         """Check if the ID is valid