Picroft error on "configuration update"

I tryed with 9.10 and 9.12

in both case i have this error

16:58:26.583 - mycroft.client.speech.main:handle_record_end:40 - INFO - End Recording…
16:58:26.594 - mycroft.session:get:76 - INFO - New Session Start: 99468648-0637-4c08-952f-972840c8e1de
16:58:26.602 - mycroft.client.speech.main:handle_wakeword:56 - INFO - Wakeword Detected: hey mycroft
16:58:26.601 - SKILLS - DEBUG - {“type”: “recognizer_loop:record_end”, “data”: {}, “context”: null}
16:58:26.688 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
16:58:26.645 - SKILLS - DEBUG - {“type”: “recognizer_loop:wakeword”, “data”: {“session”: “99468648-0637-4c08-952f-972840c8e1de”, “utterance”: “hey mycroft”}, “context”: null}
16:58:27.478 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 “POST /v1/stt?lang=en-US&limit=1 HTTP/1.1” 200 None
16:58:27.531 - mycroft.client.speech.mic:listen:503 - DEBUG - Waiting for wake word…
16:58:27.570 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 “GET /v1/device/224f48a7-5cd5-4f35-948f-1f03fbc78662/skill HTTP/1.1” 200 2
16:58:27.592 - mycroft.skills.settings:_upload_meta:277 - INFO - sending settingsmeta.json for WeatherSkill to servers
16:58:27.602 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
16:58:28.411 - mycroft.client.speech.listener:transcribe:147 - DEBUG - STT: configuration update
16:58:28.414 - mycroft.client.speech.main:handle_utterance:61 - INFO - Utterance: [u’configuration update’]
16:58:28.424 - SKILLS - DEBUG - {“type”: “recognizer_loop:utterance”, “data”: {“lang”: “en-US”, “session”: “99468648-0637-4c08-952f-972840c8e1de”, “utterances”: [“configuration update”]}, “context”: null}

16:58:28.454 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
16:58:28.456 - SKILLS - DEBUG - {"type": "mycroft.skill.handler.start", "data": {"handler": "handle_update_intent"}, "context": null}
16:58:29.070 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/224f48a7-5cd5-4f35-948f-1f03fbc78662/setting HTTP/1.1" 200 4
16:58:29.087 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
16:58:30.390 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/224f48a7-5cd5-4f35-948f-1f03fbc78662/location HTTP/1.1" 200 889
16:58:30.414 - mycroft.skills.core:wrapper:640 - ERROR - An error occurred while processing a request in ConfigurationSkill
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.9.12-py2.7.egg/mycroft/skills/core.py", line 607, in wrapper
handler(self, message)
File "/opt/mycroft/skills/skill-configuration/__init__.py", line 145, in handle_update_intent
if self.update():
File "/opt/mycroft/skills/skill-configuration/__init__.py", line 165, in update
config["location"] = location
TypeError: 'NoneType' object does not support item assignment
16:58:30.423 - SKILLS - DEBUG - {"type": "speak", "data": {"expect_response": false, "utterance": "An error occurred while processing a request in Configuration Skill"}, "context": null}
16:58:30.437 - SKILLS - DEBUG - {"type": "mycroft.skill.handler.complete", "data": {"exception": "'NoneType' object does not support item assignment", "handler": "Configuration Skill"}, "context": null}
16:58:30.447 - SKILLS - DEBUG - {"type": "mycroft.skill.handler.complete", "data": {"handler": "Configuration Skill"}, "context": null}
16:58:30.447 - SKILLS - DEBUG - {"type": "mycroft.skill.handler.complete", "data": {"handler": "Configuration Skill"}, "context": null}
16:58:30.503 - SKILLS - DEBUG - {"type": "enclosure.eyes.blink", "data": {"side": "b"}, "context": null}
16:58:30.512 - SKILLS - DEBUG - {"type": "recognizer_loop:audio_output_start", "data": {}, "context": null}
16:58:35.054 - SKILLS - DEBUG - {"type": "recognizer_loop:audio_output_end", "data": {}, "context": null}
16:58:43.081 - mycroft.skills.settings:_send_settings_meta:194 - ERROR - HTTPSConnectionPool(host='api.mycroft.ai', port=443): Read timed out. (read timeout=15)
16:58:43.084 - mycroft.skills.settings:_save_hash:320 - INFO - saving hash skill-weather-943f4e76a536b478d638249c93f4b084
16:59:43.090 - mycroft.skills.settings:_request_other_settings:451 - INFO - syncing settings with other devices from server for WeatherSkill

in Home | Registered Devices | Device detail | Location
I tried different values from empty to Los Angeles
But the error reappears

@aleale99 thanks for flagging this.
I’m going to ping @forslund because ConfigurationSkill is used on every Device.
Kind regards, Kathy

Hi,

thanks for reporting this. The issue seems to be that the device doesn’t receive the configuration, so when it tries to add the location info to the base config it throws this error.

This is a bit strange since it should either get a HTTP error or a valid config as response. I need to talk this over with the backend people to give a good (and hopefully helpful) response.

1 Like

I installed mycroft on my laptop and now is paired with a totally new device, getting the same type of error:

18:45:23.895 - mycroft.client.speech.listener:transcribe:147 - DEBUG - STT: update configuration
18:45:23.897 - __main__:handle_utterance:61 - INFO - Utterance: [u'update configuration']
~~~~EBUG - {"type": "recognizer_loop:utterance", "data": {"lang": "en-US", "session": "d9a44eda-d3ff-44da-ad80-3654c0478e55", "utterances": ["update configuration"]}, "context": null}
~~~~:23.906 - SKILLS - DEBUG - {"type": "skill.converse.request", "data": {"lang": "en-US", "skill_id": -5844316681041254434, "utterances": ["update configuration"]}, "context": null}
18:45:23.910 - SKILLS - DEBUG - {"type": "skill.converse.response", "data": {"skill_id": -5844316681041254434, "result": false}, "context": null}
~~~~", "ConfigurationSkillUpdateVerb"]], "key": "update", "match": "update"}], "key": "update", "match": "update"}], "utterance": "update configuration"}, "context": {"target": null}}
18:45:24.015 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
18:45:24.016 - SKILLS - DEBUG - {"type": "mycroft.skill.handler.start", "data": {"handler": "handle_update_intent"}, "context": null}
18:45:24.634 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/9be810e1-d6b8-4c1b-9ceb-835403c10693/setting HTTP/1.1" 200 4
18:45:24.638 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
18:45:25.321 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/9be810e1-d6b8-4c1b-9ceb-835403c10693/location HTTP/1.1" 200 889
18:45:25.328 - mycroft.skills.core:wrapper:640 - ERROR - An error occurred while processing a request in ConfigurationSkill
Traceback (most recent call last):
File "/home/ale/mycroft-core/mycroft/skills/core.py", line 607, in wrapper
handler(self, message)
File "/opt/mycroft/skills/skill-configuration/__init__.py", line 145, in handle_update_intent
if self.update():
File "/opt/mycroft/skills/skill-configuration/__init__.py", line 165, in update
config["location"] = location
TypeError: 'NoneType' object does not support item assignment
~~~~5.329 - SKILLS - DEBUG - {"type": "speak", "data": {"expect_response": false, "utterance": "An error occurred while processing a request in Configuration Skill"}, "context": null}
~~~~ DEBUG - {"type": "mycroft.skill.handler.complete", "data": {"exception": "'NoneType' object does not support item assignment", "handler": "Configuration Skill"}, "context": null}
18:45:25.337 - SKILLS - DEBUG - {"type": "mycroft.skill.handler.complete", "data": {"handler": "Configuration Skill"}, "context": null}
18:45:25.962 - SKILLS - DEBUG - {"type": "recognizer_loop:audio_output_start", "data": {}, "context": null}
18:45:30.453 - SKILLS - DEBUG - {"type": "recognizer_loop:audio_output_end", "data": {}, "context": null}

I noticed, however, that the new device had already setted the Location parameter
is your choice (all device in the same location) or the browser had autocompile it?
Ale

Hi, the device location should default to the location set for the user account. So that might be what you’re seeing.

I will post a fix working around this but I’m still not sure what is the root cause of the issue.

We deployed a tiny change to improve this behavior, have you noticed any change?

/Åke

ok now works!

but now: how can update my location to italy???

My settings tell me I’m at Lawrence Kansas United States

here is the log of my second attempt with “no changes to apply”: thanks again!

Ale

17:47:09.314 - mycroft.client.speech.main:handle_record_begin:35 - INFO - Begin Recording…
Playing WAVE ‘/usr/local/lib/python2.7/site-packages/mycroft_core-0.9.12-py2.7.egg/mycroft/res/snd/start_listening.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
17:47:12.090 - SKILLS - DEBUG - {“type”: “recognizer_loop:record_end”, “data”: {}, “context”: null}
17:47:12.103 - SKILLS - DEBUG - {“type”: “recognizer_loop:wakeword”, “data”: {“session”: “242f9fca-d626-4e06-9973-583b362b6935”, “utterance”: “hey mycroft”}, “context”: null}
17:47:12.074 - mycroft.client.speech.main:handle_record_end:40 - INFO - End Recording…
17:47:12.080 - mycroft.client.speech.main:handle_wakeword:56 - INFO - Wakeword Detected: hey mycroft
17:47:12.164 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
17:47:12.949 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 “POST /v1/stt?lang=en-US&limit=1 HTTP/1.1” 200 None
17:47:13.048 - mycroft.client.speech.mic:listen:503 - DEBUG - Waiting for wake word…
17:47:14.358 - mycroft.client.speech.listener:transcribe:147 - DEBUG - STT: configuration update
17:47:14.362 - mycroft.client.speech.main:handle_utterance:61 - INFO - Utterance: [u’configuration update’]
17:47:14.371 - SKILLS - DEBUG - {“type”: “recognizer_loop:utterance”, “data”: {“lang”: “en-US”, “session”: “242f9fca-d626-4e06-9973-583b362b6935”, “utterances”: [“configuration update”]}, “context”: null}
17:47:14.381 - SKILLS - DEBUG - {“type”: “skill.converse.request”, “data”: {“lang”: “en-US”, “skill_id”: 1968717686, “utterances”: [“configuration update”]}, “context”: null}
17:47:14.392 - SKILLS - DEBUG - {“type”: “skill.converse.response”, “data”: {“skill_id”: 1968717686, “result”: false}, “context”: null}

17:47:14.506 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
17:47:14.509 - SKILLS - DEBUG - {"type": "mycroft.skill.handler.start", "data": {"handler": "handle_update_intent"}, "context": null}
17:47:15.150 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/224f48a7-5cd5-4f35-948f-1f03fbc78662/setting HTTP/1.1" 200 4
17:47:15.164 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
17:47:17.224 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/224f48a7-5cd5-4f35-948f-1f03fbc78662/location HTTP/1.1" 200 889
17:47:17.243 - SKILLS - DEBUG - {"type": "speak", "data": {"expect_response": false, "utterance": "No changes to apply"}, "context": null}
17:47:17.253 - SKILLS - DEBUG - {"type": "mycroft.skill.handler.complete", "data": {"handler": "handle_update_intent"}, "context": null}
17:47:18.149 - SKILLS - DEBUG - {"type": "recognizer_loop:audio_output_start", "data": {}, "context": null}

I think we have discovered a backend bug related to this. We are tracking down the cause now.

2 Likes

Ciao Steve

do you have any good news for us ?