rosskouk / asknavidrome

An Alexa skill to allow streaming of music from Subsonic API compatible media servers on Amazon Echo devices.
https://rosskouk.github.io/asknavidrome
MIT License
52 stars 7 forks source link

[ISSUE] General Exception: Unable to find a suitable request handler #35

Open jagauthier opened 7 months ago

jagauthier commented 7 months ago

I have navidrome, asknavidrome, nginx, all running in docker containers. I have certs for everything terminating at the nginx side. I've created the skill, added it and tested it. And when I test, I seek this in asknavi logs (level 3):

I built the docker container myself, which appears to have a newer version of python than the one hosted, this the warnings. However, both the one I built and the one here: ghcr.io/rosskouk/asknavidrome:latest give the same error.

/opt/env/lib/python3.9/site-packages/ask_sdk_webservice_support/verifier.py:376: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to not_valid_before_utc.
  if not (x509_cert.not_valid_before <= now <=
/opt/env/lib/python3.9/site-packages/ask_sdk_webservice_support/verifier.py:377: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to not_valid_after_utc.
  x509_cert.not_valid_after):
2024-02-12 02:09:42,225 - root - DEBUG - Request received: {'error': None,
 'locale': 'en-US',
 'object_type': 'SessionEndedRequest',
 'reason': 'USER_INITIATED',
 'request_id': 'amzn1.echo-api.request.11af94fa-81b2-4c04-a2cb-cca464da516c',
 'timestamp': datetime.datetime(2024, 2, 12, 2, 9, 41, tzinfo=tzlocal())}
2024-02-12 02:09:42,225 - root - DEBUG - In SkillEventHandler
2024-02-12 02:09:42,225 - root - DEBUG - Response sent: {'api_response': None,
 'can_fulfill_intent': None,
 'card': None,
 'directives': None,
 'experimentation': None,
 'output_speech': None,
 'reprompt': None,
 'should_end_session': None}
2024-02-12 02:09:42,225 - werkzeug - INFO - 172.19.0.4 - - [12/Feb/2024 02:09:42] "POST / HTTP/1.0" 200 -
2024-02-12 02:09:42,326 - root - DEBUG - Request received: {'dialog_state': None,
 'intent': {'confirmation_status': 'NONE',
            'name': 'AMAZON.FallbackIntent',
            'slots': None},
 'locale': 'en-US',
 'object_type': 'IntentRequest',
 'request_id': 'amzn1.echo-api.request.56c680de-46bc-4b00-8f44-33c93bfc5401',
 'timestamp': datetime.datetime(2024, 2, 12, 2, 9, 41, tzinfo=tzlocal())}
2024-02-12 02:09:42,326 - root - DEBUG - In GeneralExceptionHandler
2024-02-12 02:09:42,327 - root - ERROR - General Exception: Unable to find a suitable request handler
2024-02-12 02:09:42,327 - root - ERROR - Request Type Was: IntentRequest
2024-02-12 02:09:42,327 - root - ERROR - Intent Name Was: AMAZON.FallbackIntent
2024-02-12 02:09:42,327 - werkzeug - INFO - 172.19.0.4 - - [12/Feb/2024 02:09:42] "POST / HTTP/1.0" 200 -
jagauthier commented 7 months ago

I closed this because today it was working. But it turns out that I can make it fail based on the wording (intent) that gets called.

For instance, if I use "ask navi sonic to play the album 10,000 days" I seem to have success. But I use a generic term, for all songs by an artist, "Ask navi sonic to play tool" then I get the above exception.

If I look at the intents here :https://rosskouk.github.io/asknavidrome/ Because it seems like like NaviSonicPlayMusicByArtist should do what I want, but the example seems to reference and album or specific song.