Msm parse error: Invalid numeric literal

New picroft install (platform version: 2018-03-14, mycroft-core: 18.2.4). Everything is working, however I noticed the following error in the speech log:

20:40:40.185 - mycroft.skills.main:download_skills:334 - ERROR - msm failed with error 101: parse error: Invalid numeric literal at line 2, column 5
parse error: Invalid numeric literal at line 2, column 5
ERROR: Unable to find/access !

Exiting the mycroft-cli-client, I tried both “msm default” and “sudo msm default”

$ msm default
$ parse error: Invalid numeric literal at line 2, column 5
$ parse error: Invalid numeric literal at line 2, column 5
$ ERROR: Unable to find/access !

$ sudo msm default
$ parse error: Invalid numeric literal at line 2, column 5
$ parse error: Invalid numeric literal at line 2, column 5
$ ERROR: Unable to find/access !

Am I doing something wrong? Why can’t I run msm?

Hi there @wjjessen,
Sorry to hear you’ve encountered this error. In order to troubleshoot we’ll need a little more information please.

  • Can you tell us which Raspberry Pi model you’re using?
  • Can you tell us which msm command you were using when the error occurred? For example was it msm update or say msm install SKILL_NAME?

msm error 101 is:

101 ERROR: Unable to find/access ${mycroft_skill_folder}!	

By default, the Skills are stored on every Device (Picroft, Mycroft for Linux etc) at the path /opt/mycroft/skills. MSM cannot access this directory.	

Check that the directory exists, and that it has appropriate permissions. This directory should have permissions mycroft:mycroft (mycroft owner, mycroft group) 

Hi @KathyReid,

I’m using a Raspberry Pi 3 and typed either “msm”, “msm default”, “sudo msm default”, or “msm update” on the command line after ssh’ing to the pi and exiting out of the command line client (mycroft-cli-client). In every case, picroft returns the following:

parse error: Invalid numeric literal at line 2, column 5
parse error: Invalid numeric literal at line 2, column 5
ERROR: Unable to find/access !

I can confirm that the skills directory does exist at /opt/mycroft/skills and has the correct permissions (777 mycroft:mycroft).

My picroft no longer responds to “Hey Mycroft”. When I ssh to the pi, there is an attempt to start mycroft-cli-client, which fails with:

Traceback (most recent call last):
File “/usr/local/bin/mycroft-cli-client”, line 14, in
load_entry_point(‘mycroft-core==18.2.5’, ‘console_scripts’, ‘mycroft-cli-client’)()
File “/usr/local/lib/python2.7/site-packages/pkg_resources/init.py”, line 480, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File “/usr/local/lib/python2.7/site-packages/pkg_resources/init.py”, line 2693, in load_entry_point
return ep.load()
File “/usr/local/lib/python2.7/site-packages/pkg_resources/init.py”, line 2324, in load
return self.resolve()
File “/usr/local/lib/python2.7/site-packages/pkg_resources/init.py”, line 2330, in resolve
module = import(self.module_name, fromlist=[‘name’], level=0)
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/init.py”, line 17, in
from mycroft.api import Api
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/api/init.py”, line 21, in
from mycroft.configuration import Configuration
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/configuration/init.py”, line 15, in
from .config import Configuration, LocalConf, RemoteConf,
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/configuration/config.py”, line 23, in
from mycroft.util.json_helper import load_commented_json
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/util/init.py”, line 29, in
import mycroft.audio
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/audio/init.py”, line 17, in
from mycroft.util.signal import check_for_signal, create_signal
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/util/signal.py”, line 22, in
from mycroft.util.log import LOG
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/util/log.py”, line 110, in
LOG.init()
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/util/log.py”, line 65, in init
config = load_commented_json(sys_config) if isfile(sys_config) else {}
File “/usr/local/lib/python2.7/site-packages/mycroft_core-18.2.5-py2.7.egg/mycroft/util/json_helper.py”, line 38, in load_commented_json
return json.loads(uncomment_json(contents))
File “/usr/lib/python2.7/json/init.py”, line 338, in loads
return _default_decoder.decode(s)
File “/usr/lib/python2.7/json/decoder.py”, line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File “/usr/lib/python2.7/json/decoder.py”, line 384, in raw_decode
raise ValueError(“No JSON object could be decoded”)
ValueError: No JSON object could be decoded

Thanks for the helpful error messages, @wjjessen.

I suspect whatever JSON object is being passed to decoder.py is being truncated, or is null. If this is created using some sort of urllib call, then that could be the problem.

Are there any error messages that occur above this one?

Best, Kathy

No error messages occur above this one. I wonder if these issues stem from modifying the file /etc/mycroft/mycroft.conf? Should I be adding skill configurations to /home/pi/.mycroft/mycroft.conf instead?

Hi @wjjessen, it’s possible. This documentation goes into more detail about mycroft.conf. The version in /etc/ is the system-wide version and the one in /home/pi is the user level version.