jovotech / jovo-framework

🔈 The React for Voice and Chat: Build Apps for Alexa, Messenger, Instagram, the Web, and more
https://www.jovo.tech
Apache License 2.0
1.68k stars 309 forks source link

Error using audioplayer events with UNHANDLED function in GlobalComponent #1475

Closed ghost closed 1 year ago

ghost commented 1 year ago

I'm submitting a...

Expected Behavior

When the skill use any audioplayer event like AudioPlayer.PlaybackStarted, it should do the function without throwing any error.

Current Behavior

When the skill receive any audioplayer event goes to the UNHANDLED function inside the GlobalComponent.

Error Log

{
  "version": "1.0",
  "context": {
    "AudioPlayer": {
      "offsetInMilliseconds": 0,
      "token": "/TheSisterSolo",
      "playerActivity": "PLAYING"
    },
    "Extensions": {
      "available": {}
    },
    "System": {
      "application": {
        "applicationId": "amzn1.ask.skill.3274f1e6-00a4-4da2-bd33-629c68bd4006"
      },
      "user": {
        "userId": "amzn1.ask.account.AE6I2I3ZCIWINS3TMX5UL6IMC5HZ3KIB6YFZXZVCMSNJCAUDLWQBVUGWFVOVSRH523CM5EME6M5PATOCN7XYUV3I7CE7K54EATETCL4JU35YPKF7OLUSCEFBMOSGCH52TWOHJOBNB3DL2V24BRX554PQDSTVC2A4OB4TCWUXB6W7M5EM3OD6AGMJIPTLWQIH52FKWWVDTMHKRJI"
      },
      "device": {
        "deviceId": "amzn1.ask.device.AGLYE6O3CBE4C6AH6II7G3NU6ZPIBVEL5NFYO7UZCGJXKAJEJIT6RCOLFPR2O4LEUHSMKBZRLSWADXN7VEHEEWERMQRMVL2TWHAMAN7R2SBYEQCVWFFVKH7NXU7NUNCMMEYLK3ZML4YW2UC6YGZMQC7CWZ7DHSO6PFKN6KTSAK7AKNIEIVOUI",
        "supportedInterfaces": {
          "Geolocation": {},
          "AudioPlayer": {}
        }
      },
      "apiEndpoint": "https://api.amazonalexa.com",
      "apiAccessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjMyNzRmMWU2LTAwYTQtNGRhMi1iZDMzLTYyOWM2OGJkNDAwNiIsImV4cCI6MTY3MDE4NzI1NSwiaWF0IjoxNjcwMTg2OTU1LCJuYmYiOjE2NzAxODY5NTUsInByaXZhdGVDbGFpbXMiOnsiY29udGV4dCI6IkFBQUFBQUFBQUFEdFBGL3NYQjkwdURxZXBveFU2QUxJS2dFQUFBQUFBQUFoUXBCNUxJN2tTR3VEeURLRERmcUI4TndJZDBiekZlTzNMcDFDdmN6VjZkeTBxaFM5aEJPaWFyRnJoOTcvRzE1dzBpVUpaV2U1WUdIbVNuTk56VmN1eDUxa3pabE1VYWgrWWErMGZVNXpXdWJ6dWF1TmZRMkZQL2d2NnB0ZTVYL1gyMm9ScjgzcHpORi9weUwxY0lGcjVheFJLMWQrZkJuZ3YzYUtGOTZERzhQZmdacGRBRXJzRlZtZ09lSU1Xc2grK0JPUHM0dWlkMXJrTmZWVGsrMC9OUjlhcWhnUCtEMHF2ZEFGMlNyZm5CcG1VV3hHeWhaOXltTmowRDRRckdFSFNJeThEb0Fod1VqSmpuSkF2TlVHc3NOTjdSNlV0SGhhQzZkUVpLYWtCekZxSEhEcXBZWFYwT3hoM2pRYXVqbFhzeGxSSHp6TFhkU3hYR1d3b1pUSW5DbDhrbkgzTUNQNlNDTVNUNmV3azZBdEpMSWtPc3d3Z1FmZlJHMTczWnJJMERvMW1Nb2FKQVhmIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFHTFlFNk8zQ0JFNEM2QUg2SUk3RzNOVTZaUElCVkVMNU5GWU83VVpDR0pYS0FKRUpJVDZSQ09MRlBSMk80TEVVSFNNS0JaUkxTV0FEWE43VkVIRUVXRVJNUVJNVkwyVFdIQU1BTjdSMlNCWUVRQ1ZXRkZWS0g3TlhVN05VTkNNTUVZTEszWk1MNFlXMlVDNllHWk1RQzdDV1o3REhTTzZQRktONktUU0FLN0FLTklFSVZPVUkiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BRTZJMkkzWkNJV0lOUzNUTVg1VUw2SU1DNUhaM0tJQjZZRlpYWlZDTVNOSkNBVURMV1FCVlVHV0ZWT1ZTUkg1MjNDTTVFTUU2TTVQQVRPQ043WFlVVjNJN0NFN0s1NEVBVEVUQ0w0SlUzNVlQS0Y3T0xVU0NFRkJNT1NHQ0g1MlRXT0hKT0JOQjNETDJWMjRCUlg1NTRQUURTVFZDMkE0T0I0VENXVVhCNlc3TTVFTTNPRDZBR01KSVBUTFdRSUg1MkZLV1dWRFRNSEtSSkkifX0.jxcbDzVZYTu8PPluVMeGwYsGH3tINQ5GhM7zMzHzcjmOO6plZMeGtycu4CJgpqPvvho5BRZEOa0W6dnnH6sk6zjlO_9ruPO3J8yTpTCp1j-H-PWWeKeIHH07P2ivPiCCY0hvNiNNqTyqd0riBeiKMB0jlj1ft9ttcBF8jgQffB4ayFb61OGTfk89EvdJcM8U4KWq3ag0Yo4eVKaN_tl5Xu39KUpJfmbOv3UGGQKfLVuENVfFip39imI-B0tRl0bIDYEFDsJwSf2IyTY-m_ROZy6RH1NRE_WEZ176klDzU2M1gdRIzi8D1J7R1Yl3I32N45myJziAVu-kHUq65m-m9w"
    }
  },
  "request": {
    "type": "AudioPlayer.PlaybackStarted",
    "requestId": "amzn1.echo-api.request.2ffaa977-7bb4-4710-8b16-a9798ad7f53b",
    "timestamp": "2022-12-04T20:49:15Z",
    "locale": "en-US",
    "token": "/TheSisterSolo",
    "offsetInMilliseconds": 0
  }
}
=====UNHANDLED=====
>>LAST STATE undefined
>>REQUEST {"version":"1.0","context":{"AudioPlayer":{"offsetInMilliseconds":0,"token":"/TheSisterSolo","playerActivity":"PLAYING"},"Extensions":{"available":{}},"System":{"application":{"applicationId":"amzn1.ask.skill.3274f1e6-00a4-4da2-bd33-629c68bd4006"},"user":{"userId":"amzn1.ask.account.AE6I2I3ZCIWINS3TMX5UL6IMC5HZ3KIB6YFZXZVCMSNJCAUDLWQBVUGWFVOVSRH523CM5EME6M5PATOCN7XYUV3I7CE7K54EATETCL4JU35YPKF7OLUSCEFBMOSGCH52TWOHJOBNB3DL2V24BRX554PQDSTVC2A4OB4TCWUXB6W7M5EM3OD6AGMJIPTLWQIH52FKWWVDTMHKRJI"},"device":{"deviceId":"amzn1.ask.device.AGLYE6O3CBE4C6AH6II7G3NU6ZPIBVEL5NFYO7UZCGJXKAJEJIT6RCOLFPR2O4LEUHSMKBZRLSWADXN7VEHEEWERMQRMVL2TWHAMAN7R2SBYEQCVWFFVKH7NXU7NUNCMMEYLK3ZML4YW2UC6YGZMQC7CWZ7DHSO6PFKN6KTSAK7AKNIEIVOUI","supportedInterfaces":{"Geolocation":{},"AudioPlayer":{}}},"apiEndpoint":"https://api.amazonalexa.com","apiAccessToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjMyNzRmMWU2LTAwYTQtNGRhMi1iZDMzLTYyOWM2OGJkNDAwNiIsImV4cCI6MTY3MDE4NzI1NSwiaWF0IjoxNjcwMTg2OTU1LCJuYmYiOjE2NzAxODY5NTUsInByaXZhdGVDbGFpbXMiOnsiY29udGV4dCI6IkFBQUFBQUFBQUFEdFBGL3NYQjkwdURxZXBveFU2QUxJS2dFQUFBQUFBQUFoUXBCNUxJN2tTR3VEeURLRERmcUI4TndJZDBiekZlTzNMcDFDdmN6VjZkeTBxaFM5aEJPaWFyRnJoOTcvRzE1dzBpVUpaV2U1WUdIbVNuTk56VmN1eDUxa3pabE1VYWgrWWErMGZVNXpXdWJ6dWF1TmZRMkZQL2d2NnB0ZTVYL1gyMm9ScjgzcHpORi9weUwxY0lGcjVheFJLMWQrZkJuZ3YzYUtGOTZERzhQZmdacGRBRXJzRlZtZ09lSU1Xc2grK0JPUHM0dWlkMXJrTmZWVGsrMC9OUjlhcWhnUCtEMHF2ZEFGMlNyZm5CcG1VV3hHeWhaOXltTmowRDRRckdFSFNJeThEb0Fod1VqSmpuSkF2TlVHc3NOTjdSNlV0SGhhQzZkUVpLYWtCekZxSEhEcXBZWFYwT3hoM2pRYXVqbFhzeGxSSHp6TFhkU3hYR1d3b1pUSW5DbDhrbkgzTUNQNlNDTVNUNmV3azZBdEpMSWtPc3d3Z1FmZlJHMTczWnJJMERvMW1Nb2FKQVhmIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFHTFlFNk8zQ0JFNEM2QUg2SUk3RzNOVTZaUElCVkVMNU5GWU83VVpDR0pYS0FKRUpJVDZSQ09MRlBSMk80TEVVSFNNS0JaUkxTV0FEWE43VkVIRUVXRVJNUVJNVkwyVFdIQU1BTjdSMlNCWUVRQ1ZXRkZWS0g3TlhVN05VTkNNTUVZTEszWk1MNFlXMlVDNllHWk1RQzdDV1o3REhTTzZQRktONktUU0FLN0FLTklFSVZPVUkiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BRTZJMkkzWkNJV0lOUzNUTVg1VUw2SU1DNUhaM0tJQjZZRlpYWlZDTVNOSkNBVURMV1FCVlVHV0ZWT1ZTUkg1MjNDTTVFTUU2TTVQQVRPQ043WFlVVjNJN0NFN0s1NEVBVEVUQ0w0SlUzNVlQS0Y3T0xVU0NFRkJNT1NHQ0g1MlRXT0hKT0JOQjNETDJWMjRCUlg1NTRQUURTVFZDMkE0T0I0VENXVVhCNlc3TTVFTTNPRDZBR01KSVBUTFdRSUg1MkZLV1dWRFRNSEtSSkkifX0.jxcbDzVZYTu8PPluVMeGwYsGH3tINQ5GhM7zMzHzcjmOO6plZMeGtycu4CJgpqPvvho5BRZEOa0W6dnnH6sk6zjlO_9ruPO3J8yTpTCp1j-H-PWWeKeIHH07P2ivPiCCY0hvNiNNqTyqd0riBeiKMB0jlj1ft9ttcBF8jgQffB4ayFb61OGTfk89EvdJcM8U4KWq3ag0Yo4eVKaN_tl5Xu39KUpJfmbOv3UGGQKfLVuENVfFip39imI-B0tRl0bIDYEFDsJwSf2IyTY-m_ROZy6RH1NRE_WEZ176klDzU2M1gdRIzi8D1J7R1Yl3I32N45myJziAVu-kHUq65m-m9w"}},"request":{"type":"AudioPlayer.PlaybackStarted","requestId":"amzn1.echo-api.request.2ffaa977-7bb4-4710-8b16-a9798ad7f53b","timestamp":"2022-12-04T20:49:15Z","locale":"en-US","token":"/TheSisterSolo","offsetInMilliseconds":0}}
>>INPUT {"type":"AudioPlayer.PlaybackStarted"}

Your Environment

sadlowskij commented 1 year ago

Hey @jakersource, how are you trying to handle the PlaybackStarted? It works for me like this in a Component:

  @Global()
  @Handle(AlexaHandles.onAudioPlayer('AudioPlayer.PlaybackStarted'))
  async playbackStarted(): Promise<void> {
    // some logic
    return this.$send({ listen: false });
  }
ghost commented 1 year ago

I solved, the issue was that the UNHANDLED function was in the wrong order.

Thanks @sadlowskij