diff --git a/mycroft/skills/core.py b/mycroft/skills/core.py index d94eb6678d44..5ab04789e0b1 100644 --- a/mycroft/skills/core.py +++ b/mycroft/skills/core.py @@ -360,8 +360,16 @@ def load_regex_files(self, regex_dir): load_regex(regex_dir, self.emitter) def __handle_stop(self, event): + """ + Handler for the "mycroft.stop" signal. Runs the user defined + `stop()` method. + """ self.stop_time = time.time() - self.stop() + try: + self.stop() + except: + logger.error("Failed to stop skill: {}".format(self.name), + exc_info=True) @abc.abstractmethod def stop(self): @@ -386,4 +394,8 @@ def shutdown(self): self.emitter.emit( Message("detach_skill", {"skill_name": self.name + ":"})) - self.stop() + try: + self.stop() + except: + logger.error("Failed to stop skill: {}".format(self.name), + exc_info=True)