A tip for testing Alexa Skills

A week or so ago I got my first Echo device (a Dot as a speaker gift from Devnexus) and I fell in love with it so much that I've already purchased the larger model. My wife ands kids like it too. So naturally I decided to take a look at building custom skills for it. (For folks who don't know, a "Skill" is basically a program that lets the device respond to voice commands.) While I plan on blogging about the process of getting it to work with OpenWhisk, I wanted to share a really, really important tip.

As part of the skill design process, Amazon has a web based interface that, for the most part, works just fine. I had my action up and running on OpenWhisk and I tried my first test, again, via the web interface. When I ran my test, I got an error:

The error, which you can't read completely on screen there, is:

The remote endpoint could not be called, or the response it returned was invalid.

And... bam. That was it. I was completely stuck. I had some logging on my OpenWhisk side and as far as I could see, nothing was executing at all. I really didn't know what to do.

Then - on a whim - I looked at my phone's Alexa app. This is the app you install to work with your hardware, configure it and the like, but isn't required for building the skill itself. I just opened it up for the heck of it honestly, and that's when I saw it.

The app keeps a record of everything you ask it and presents it in a nice card interface. What I didn't realize was that it also recorded my tests from the web interface and - crucially - returned much more detailed information:

For the life of me, I can't imagine why this level of information isn't available on the developer web site, but it was exactly the information I needed to fix the problem*. Once I corrected it, I was able to connect to my skill (both in the web app and via voice) just fine.

As I said, I'll share more details about doing this with OpenWhisk once I get a better demo done.

* For folks curious about the issue, I'll document this in my larger post later, but the issue was that I needed to select "My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority" on the SSL setting. Thanks to Carlos Santana for helping me with that.

Archived Comments

Comment 1 by Carlos Santana posted on 3/8/2017 at 6:26 PM

This Carlos Santana dude sounds very helpful🙀 I wonder if he has a twitter handle, I would follow him to learn more about OpenWhisk 😹 Or better join the OpenWhisk Slack

Comment 2 (In reply to #1) by Raymond Camden posted on 3/8/2017 at 7:17 PM

You caught me being lazy. ;) I'll edit the post to hot link your name. I'm going to use the screenshot you shared on Slack btw for my 'real' post later this week.

Comment 3 (In reply to #2) by Carlos Santana posted on 3/8/2017 at 11:36 PM

Haha no problem I don't mind, keep the good work !!!
I was just messing with you

Comment 4 by Omar posted on 1/22/2018 at 8:09 PM

Amazing! This issue was bugging me since two nights. Skill stopped working suddenly. I wonder why this data isn't shown on the interface and why the handshake was working earlier but stopped working after a while

Comment 5 (In reply to #4) by Raymond Camden posted on 1/22/2018 at 8:16 PM

Glad it helped.

Comment 6 by Soundar Surya posted on 1/29/2018 at 5:57 PM

hey raymond,
for device it is ok but when creating your own skill.
i mean i have installed alexa in my raspberry pi and created my own skill and now i am getting the same error..??

Comment 7 (In reply to #6) by Raymond Camden posted on 1/29/2018 at 6:28 PM

I'm not quite sure I understand your question. Even if you run Alexa on different hardware, it should still be working with the same APIs.

Comment 8 (In reply to #7) by Soundar Surya posted on 1/30/2018 at 5:01 PM

your are using ECHO device but i have installed alexa on my Rpi and created my own skill and did some backend coding(lambda) at AWS console and AWS IoT......
for that i am asking help mr.raymond
can you get it now???

Comment 9 (In reply to #8) by Raymond Camden posted on 1/30/2018 at 5:07 PM

Ok, so what error did you get - the same?

Comment 10 (In reply to #9) by Soundar Surya posted on 1/30/2018 at 5:15 PM

yes i am getting the same error

Comment 11 (In reply to #10) by Raymond Camden posted on 1/30/2018 at 5:32 PM

So for me the error was on the OpenWhisk side - my serverless platform. You would need to Google that in regards for Lambda. I don't use Lambda so can't help.

Comment 12 by Matthew Ruschmann posted on 2/11/2018 at 1:02 PM

Amazing! I was guessing SSL, but this helped out so much.

Comment 13 (In reply to #12) by Raymond Camden posted on 2/12/2018 at 2:38 PM

Glad it helped - sorry Amazon hasn't corrected this yet.

Comment 14 by Fazul posted on 10/31/2018 at 7:26 AM

I am getting "Request Identifier: amzn1.echo-api.request.75608d74-acf5-4752-a092-7576b98df218

The skill responded with 404 HTTP status code"

using the sample end point :https://demo8277843.mockabl...

Selected the HTTPS option as "My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority"

Please help me out as I struck from almost 4 days...

Comment 15 (In reply to #14) by Raymond Camden posted on 10/31/2018 at 2:03 PM

What I described worked for OpenWhisk - I do not know about the service you are using. Sorry.