diff --git a/Script/DdmMonitoringThread.py b/Script/DdmMonitoringThread.py
index d220adc204f544db77ea5c2928eae1a153b679b7..e1a74a638002cb7bd70d82997f2bc3dbe10105a4 100644
--- a/Script/DdmMonitoringThread.py
+++ b/Script/DdmMonitoringThread.py
@@ -95,6 +95,12 @@ class DdmMonitoringThread(threading.Thread):
                                 self.logger.critical('request error for more than 300 seconds')
                                 self.requestErrorCriticalLogged = True
 
+                    # An error has occurred and the non-publised entry has been
+                    # re-added to the queue: if we don't break here we will spin
+                    # in this loop with no pause until the issue is fixed. It's
+                    # better to take a little break and retry later.
+                    break
+
             self.event.wait(self.conf.DdmMonitoringTimeout)
 
         self.logger.info('DdmMonitoringThread exited')