Skill not updated after web configuration

Hi,

I’m writing a skill which interacts with home.mycroft.ai for configuration purpose.

From the web interface I’m able to see the configurations fields after the New Settings meta to upload from the console.

However the settings.json file is not updated when I hit the save button or very randomly.

My skill has the callback:

def on_settings_changed(self):
    self._setup()
    self._run()

def initialize(self):
    self._setup()
    self.settings_change_callback = self.on_settings_changed

What am I missing?

Thanks for your help :slight_smile:

It seems that there is some cache or lock.

If I do a lot of code changes and then run the msm update command then the configuration update never happens but when I restart the skills service then the configuration is updated.

So, I confirm the workaround.

At every commit on my skill, I have to msm remove my_skill , msm install my_skill and mycroft-start skills restart .

I also tried to use the msm update my_skill command but the result is the same.

Do you have any idea about this behavior (I’m using the dev version), is it something expected?

That is a strange one. You certainly shouldn’t need to restart the Skill service.

Can I clarify, is it slow to update settings and hence this is quicker, or no matter how long you wait, the settings will not update?

@gez-mycroft thanks for answering.

It worked maybe 3 or 4 times only with a very random timing (during the 10 hours I tried to debug).

After the skills service restart it’s working every time that I’m changing the configuration. From what I saw it refreshing around every ~60 seconds when a changed is detected.

I just saw this commit https://github.com/MycroftAI/mycroft-core/commit/b0884301a3c63280890ac78232251b51e78d546b, is it related to this?

EDIT: No it’s not ^

@gez-mycroft it’s the same thing if there is an intent update, the skills service will have to be restarted.
I guess this is because the intents are read from the files and then loaded into memory.