Aiki x Developer

alexa-skills

Alexa Skills Development: Error log shows "Skill I/O is only available when you invoke a skill that you created"

October 2nd, 2019

alexa-echo

Hiya! It's Arisa, a freelance Frontend and Full Stack Developer living in Germany.

I just recentlly started from a scratch to learn Alexa Skills development.

It's not that difficult if you already can write JavaScript in the web development.

If you're familiar with Frontend, you can already write Alexa Skills with just a few tips with Node.js.

There are already a lot of good tutorials from Alexa Skills documents.

Or if you just want to to get knowing how Alexa Skills development is like, CodeCademy's courses are helpful too.

https://www.codecademy.com/learn/learn-alexa

Notes: Some of the topics are not yet covered with v2 which is the current version to develop Alexa Skills. CodeCademy's courses are good for people just want to know and play around, I guess.

I'll short cut the the topic about how to develop Alexa Skills because there are already a lot of sources like CodeCademy or Alexa Skills docs provide tutorials.

The main topic we talk today is the testing error we get often.

"Skill I/O is only available when you invoke a skill that you created"

While you develop your Alexa Skills, you might experience this error when you test your program.

"Skill I/O is only available when you invoke a skill that you created."

But what does this supposed to mean?

Well, this error log is not much giving you a good clue yet because you are testing the skill you are developing. (Personally, I think Skill I/O should change that error log into something easier to tell the reason of the connection error.)

But you'll realize one thing in your Skill I/O.

Take a look at your Skill I/O test screen.

And keep in your mind this is how it should look like in your Skill I/O.

Skill I/O test page

But your Skill I/O screen doesn't return the JSON data when you type or speak to invoke your Alexa skill.

"Huh, so I am testing the skill I'm developing but Skill I/O doesn't return JSON data which should be in there...🤔"

And the first thing you do is to start taking a look at your code to find any mistakes.

But let me tell you one thing.

Mostly, when your Skill I/O shows you this error message, the solution is not in your code.

It's your downloaded antivirus in your computer.

Antivirus with web protection component prevents Alexa's test interface Skill I/O

It's a bit of weird result but that's how many people got stuck and I did too.

In my case, I have Avast enabled to watch with web protection component.

Simply, just turn off the web protection component in antivirus while you test your Alexa Skills then it works like a magic 🧙‍♀️

That's it...?

Yup, that's it!

Antivirus with web protection component affects because, antivirus was blocking all the connections which Alexa simulator needed to do in the browser.

That's why we didn't get the JSON data because anyway, the test didn't have the connection to invoke.

When I realized, I felt I wasted a bit of longer time than I expected just because of a small issue.

But I just had to crack open the dev tool from the browser, and go to the connection errors to see if there's any connection errors or not.

Why?

It's because Alexa Skills are all about sending requests and responding back with answers through connections.

In my case, I found the answer in the amazon developer forum though.

https://forums.developer.amazon.com/questions/145271/skill-io-is-only-available-when-you-invoke-a-skill.html

It's really helpful forum like Stackoverflow but especially for Alexa Skills development and Amazon product related development.

Hope this article helped you a bit of the problem you had!

Tschüß