1
votes

I'm implementing skill lifecycle events using "Skill Events". Going through the docs can't find anything that mentions what should I respond with for these events. Closest I found was:

Alexa will attempt to redeliver events if an acknowledgement is not sent by the skill service, for up to one hour. If the skill service receives an event, and the skill service sends an acknowledgment in response, this event must then be managed by the skill service. In either case, the skill service cannot, at a later time, retrieve past events from Alexa.

Source

What does it imply, an empty 200 response? What do if something fails. Should I return a 200 status with a formatted error similar to Alexa ErrorResponse?

As the skill event data schema is different from typical Alexa events, I presume it's different.

1

1 Answers

2
votes

So far by just playing with the responses, if I return an empty 200 response, Alexa understands that I acknowledged the request and doesn't send it anymore.

If something fails I respond with a 400 status and plaintext error msg. Then I received the request again later.

Also be sure to save the timestamp from either AlexaSkillEvent.SkillEnabled or AlexaSkillEvent.SkillAccountLinked requests with the user, so you can validate if the repeatedly sent events are valid if something isn't right.