The format is based on [Keep a Changelog](http://keepachangelog.com/)
 and this project adheres to [Semantic Versioning](http://semver.org/).
 
+
+## [1.2.0]
+### Changed
+* Bug fix prevent sub threads from crashing permanently (DCAEGEN2-2501)
+
 ## [1.1.2]
 ### Changed
 * Bug fix for missing sdnc params in DELETE event (DCAEGEN2-2483)
 
         """
         try:
             app_conf = self._get_pmsh_config()
-            if "INVALID JSON" in app_conf.values():
-                raise ValueError('Failed to refresh AppConfig: INVALID JSON')
             self.subscription.administrativeState = app_conf['policy']['subscription'][
                 'administrativeState']
             logger.info("AppConfig data has been refreshed")
         except ValueError or Exception as e:
-            logger.error(e)
+            logger.error(f'Failed to refresh AppConfig: {e}', exc_info=True)
 
     def get_mr_sub(self, sub_name):
         """
     def run(self):
         self.function(*self.args, **self.kwargs)
         while not self.finished.wait(self.interval):
-            self.function(*self.args, **self.kwargs)
+            try:
+                self.function(*self.args, **self.kwargs)
+            except Exception as e:
+                logger.error(f'Exception in thread: {self.name}: {e}', exc_info=True)
 
   <groupId>org.onap.dcaegen2.services</groupId>
   <artifactId>pmsh</artifactId>
   <name>dcaegen2-services-pm-subscription-handler</name>
-  <version>1.1.2-SNAPSHOT</version>
+  <version>1.2.0-SNAPSHOT</version>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <sonar.sources>.</sonar.sources>