-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ISSUE] Skill can connect to Ask Navidrome but requests don't process (HTTP Error 403) #28
Comments
Hi, The 405 when accessing the skill is normal if a none complete request is sent so that should be nothing to worry about. The issue looks to be an internal one in that the skill container cannot connect to your navidrome instance. To troubleshoot further I would open a shell in the skill container and use curl / to try and get to your navidrome instance to see what is happening. The external side looks good from your logs, the intent requested gets to the skill container fine. |
Thank you for the suggestion. EDIT - I set the debug level to 3 and this is what's in the logs when I test through the developer console: for ECHO OPEN 'skillname'
and for PLAY MUSIC BY 'artist name'
I'm guessing by the 2 totally different IP addresses that it's some kind of Docker networking issue that I have no clue how to resolve :( |
It does look like something like that, can you post your skill config file, redacting the passwords and IDs please? When in the skill container and attempting to CURL the Navidrome instance there should be no mention of JavaScript, it looks like the request is going somewhere else. Here is an example of what I get (replace NAVIDROME-URL with your URL (the contents of the NAVI_URL environment variable):
We can ignore the error, that's expected as we haven't authenticated, you should be getting something starting with "subsonic-response" though. If you're not getting that I suspect the path the skill has to the Navidrome REST API is incorrect. |
When I curl with my URL from inside the container I get pretty much the exact same result you posted (although I seem have a more recent version of navidrome... and an extra openSubsonic value?).
I'm using compose so all my config is in the file..
|
Hi, This seems strange. I'll try updating my Navidrome instance as soon as I can to see if I can recreate the issue. The problem looks like it is just the skill not being able to connect to your Navidrome instance and once that's resolved it should just work |
Hi, I was getting similar issue trying to hit my public navidrome url sitting behind cloudflare,
|
I seem to have run into the same issue, I assume its related to how clear passwords are no longer in use for the newer deployments and now needs token? If so is there a way to configure this to work with the newer design? if your targeting API version 1.12.0 or earlier, authentication is performed by sending the password as clear text or hex-encoded. Examples: http://your-server/rest/ping.view?u=joe&p=sesame&v=1.12.0&c=myapp Starting with API version 1.13.0, the recommended authentication scheme is to send an authentication token, calculated as a one-way salted hash of the password. This involves two steps:
For example: if the password is sesame and the random salt is c19b2d, then token = md5("sesamec19b2d") = 26719a1196d2a940705a59634eb18eab. The corresponding request URL then becomes: http://your-server/rest/ping.view?u=joe&t=26719a1196d2a940705a59634eb18eab&s=c19b2d&v=1.12.0&c=myapp |
I have seen this in documentation and wondering how can they authenticate the request without knowing of the salt value? sorry for not being the place for such a question |
Describe the issue
Asknavidrome recieves but is unable to process requests from the alexa skill.
When using the "OPEN InvocationName" command the developer console or device responds with ready but the log shows this error:
2023-06-03 23:25:29,994 - asknavidrome.subsonic_api - ERROR - Failed to connect to Navidrome
When using the "ASK InvocationName to DoAnything" command the console/device can't proceed and the log has this error:
2023-06-03 23:26:47,948 - root - ERROR - General Exception: HTTP Error 403: Forbidden
Operating System
Docker Compose (under Portainer on Ubuntu).
To Reproduce
Ask the device or dev console to "OPEN InvocationName"
Then ask the device or dev console to "ASK InvocationName to play music by ArtistName" or "ASK InvocationName to play music"
Logs
2023-06-03 23:25:28,807 - werkzeug - INFO - 172.31.0.1 - - [03/Jun/2023 23:25:28] "POST / HTTP/1.1" 200 -
2023-06-03 23:25:29,994 - asknavidrome.subsonic_api - ERROR - Failed to connect to Navidrome
2023-06-03 23:25:30,029 - werkzeug - INFO - 172.31.0.1 - - [03/Jun/2023 23:25:30] "POST / HTTP/1.1" 200 -
2023-06-03 23:26:14,473 - root - ERROR - General Exception: HTTP Error 403: Forbidden
2023-06-03 23:26:14,473 - root - ERROR - Request Type Was: IntentRequest
2023-06-03 23:26:14,473 - root - ERROR - Intent Name Was: NaviSonicPlayMusicByGenre
2023-06-03 23:26:14,475 - werkzeug - INFO - 172.31.0.1 - - [03/Jun/2023 23:26:14] "POST / HTTP/1.1" 200 -
2023-06-03 23:26:47,948 - root - ERROR - General Exception: HTTP Error 403: Forbidden
2023-06-03 23:26:47,948 - root - ERROR - Request Type Was: IntentRequest
2023-06-03 23:26:47,948 - root - ERROR - Intent Name Was: NaviSonicPlaySongByArtist
2023-06-03 23:26:47,951 - werkzeug - INFO - 172.31.0.1 - - [03/Jun/2023 23:26:47] "POST / HTTP/1.1" 200 -
Comments
Navidrome instance is externally accessible by android apps and web browsers using the same credentials in the docker compose file)
Asknavidrome service is externally accessible (although shows a 405 method not allowed page when viewed by a browser)
I use cloudflare tunnels to access the containers.
The text was updated successfully, but these errors were encountered: