Mycroft will only learn pairing skill


#1

After installing Mycroft and running the dev setup script, I was unable to pair Mycroft (for Linux - Debian 9 x64). I was able to manually install skill-pairing with msm and pair Mycroft. However all subsequent attempts to install skills fail. Well, sort of. After running msm/msm default, Mycroft downloaded a bunch of skills and put them in /opt/mycroft/skills. However, Mycroft responds to any question with “Sorry, I didn’t catch that.” From the debug console if I enter “:skills” the ONLY loaded skill listed is skill-pairing.

Any suggestions?


#2

Hey @imrazor, couple of thoughts here:

  • What permissions are set on /opt/mycroft/skills?
  • What does /var/log/mycroft-skills.log tell us?

#3

Permissions look like so:

deb7567:/opt/mycroft$ ls -l 
total 8
drwxr-xr-x 34 imrazor imrazor 4096 Feb 17 17:03 skills
-rw-r--r--  1 imrazor imrazor 1743 Feb 17 17:04 web_config_cache.json

As for the log file -

ls /var/log/mycroft-skills.log
ls: cannot access '/var/log/mycroft-skills.log': No such file or directory

it appears to not exist. Not sure what that means.


#4

OK, we’ve seen a few issues on Debian, like this.
Is there any chance you could spin up a Ubuntu 16.04 VM to try?
I know they’re closely related distros, but we’ve seen several issues when Mycroft is installed under Debian.

I also gave you the wrong path for the log files, apologies.
On a Linux installation, they are at ../mycroft-core/scripts/logs

Best, Kathy


#5

I will try to look for the log when I have my laptop handy. I did try to install on a different Fedora 27 machine, and ran into the same problem.

Is there any particular reason for Ubuntu 16.04? If I have to use Ubuntu, I’d rather use a current version…


#6

Im having the same issue here. Using ubuntu 17.


#7

Logs pls :slight_smile:


#8

I have exactly the same issue. Fresh install on Ubuntu 16.04.3 LTS.

1.) git pull dev tree
2.) run dev_setup.sh script (everything builds fine)
3.) run scripts/prepare-msm.sh (everything executes fine and /opt/mycroft/ tree is created)
4.) run msm/msm default (large number of default skills are installed into /opt/mycroft/skills)
5.) run start_mycroft.sh all
6.) run start_mycroft.sh cli
7.) execute :skills command and see only skill-pairing loaded
8.) “Pair my device” command and process works fine, mycroft indicates pairing was successfull
9.) No subsequent command works as no skills seem to load other than “skill-pairing”.

Every command generates the following log (mycroft-skills.log):

18:38:50.299 - SKILLS - DEBUG - {“type”: “recognizer_loop:utterance”, “data”: {“lang”: “en-us”, “utterances”: [“what is the time”]}, “context”: null}
18:38:50.304 - mycroft.skills.intent_service:send_metrics:244 - DEBUG - Sending metric
18:38:50.306 - SKILLS - DEBUG - {“type”: “intent_failure”, “data”: {“lang”: “en-us”, “utterance”: “what is the time”}, “context”: {}}
18:38:50.307 - mycroft.skills.padatious_service:handle_fallback:107 - DEBUG - Padatious fallback attempt: what is the time
18:38:50.308 - SKILLS - DEBUG - {“type”: “mycroft.skill.handler.start”, “data”: {“handler”: “fallback”}, “context”: null}
18:38:50.309 - mycroft.skills.padatious_service:handle_fallback:110 - DEBUG - Waiting for training to finish…

There’s no log of any attempt being made of any skill other than ‘skill-pairing’ being loaded…

Also, MSM reports that the default skills are installed when doing ‘msm list’

Any ideas?


#9

Does it work after a restart of mycroft services?


#10

Just wanted to post an update. A day or two ago I ran:

msm/msm default

This redownloaded all the base skills, and Mycroft actually started responding to queries. He’s a bit quirky, but far more useful now.


#11

No unfortunately not. No attempt is made at startup to load the skills in /opt/mycroft/skills according to the logs, only the pairing skill is loaded.


#12

Just an update from my side:

I managed to load some default skills if I specify them in the ~/.mycroft/mycroft.conf configuration file in the skills section as follows:

// General skill values
"skills": {
// Directory to look for user skills
//“directory”: “~/.mycroft/skills”,
“directory”: “/opt/mycroft/skills”,
// TODO: Old unused kludge, remove from code
"stop_threshold": 2.0,
// Enable auto update by msm
"auto_update": true,
// blacklisted skills to not load
"blacklisted_skills": [“skill-media”, “send_sms”, “skill-wolfram-alpha”],
// priority skills to be loaded first
"priority_skills": [“skill-pairing”, “skill-date-time”, “ping-skill”, “skill-joke”, “mycroft-timer”, “skill-alarm”, “skill-speak”, “skill-installer” , “skill-npr-news”, “skill-configuration”, “skill-singing”, “skill-stock”, “skill-stop”, “skill-weather”, “skill-wiki”, “calculator-skill”, “skill-reminder”, “fallback-aiml”, “fallback-duckduckgo”, “fallback-wolfram-alpha”, “fallback-unknown” ],
// Minimum time since last skill updata to force an update on startup
"startup_update_required_time": 12
},

If I don’t specify each skill in “priority_skills” then it simply doesn’t get loaded automatically.

This is true for the master branch and dev branch, both exhibit the same behavior on Ubuntu 16.04 LTS, and Ubuntu 17.10.


#13

Interesting. Firstly, apologies you’re experiencing this issue.

What happens if you run

sudo msm update

This will update all the Skills.


#14

I just ran into this and found a workaround.
In your config change, “auto_update” to false.


#15

Can confirm, this also resolved the issue for me.