-
-
Notifications
You must be signed in to change notification settings - Fork 252
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
Unable to connect using android app, but works on chrome #620
Comments
Do you by any chance use Let's Encrypt certificates? Your device might not trust the new root certificates. @Maxr1998 maybe we should print the full stack traces here https://github.com/jellyfin/jellyfin-android/blob/99fb25b3b10fc5592780f6728f2c69bc7e5fed91/app/src/main/java/org/jellyfin/mobile/setup/ConnectFragment.kt to help troubleshoot issues like this one. |
We catch a bunch of exceptions in the Ktorclient and map those to an class extending ApiClientException. After that we catch Right now there is no exception in Ktor (multiplatform) to catch SSL issues so it might be tricky to implement. |
Yes, I'm using Lets Encrypt certificates. Why would it work on chrome browser of the same device? And the same certificate works for other android devices. Am I getting this wrong? |
The browser probably ships its own certificates or the intermediate certificates are cached. Your other devices might be newer and support the root cert on their own. Regardless, you should run your site through the SSL Server Test to check if this is actually the issue you have. |
The server is not facing the internet, but I'll try to find a tool that can validate it locally. Apparently each application are entrusted with this task since Android 6. Is it possible that this application wasn't included/affected with their fix when it expired back in September? There most have been some changes how it handles Root CAs between Android 7 and 9? (It works well on my other newer devices) I will give a shot using a certificate issued by my domain provider, see if that resolves the problem. Unfortunately I wouldn't find that as a viable permanent solution. (Arguably I'm due for a new phone, but I'm thinking about other users as well) PS: As a full time single father I don't have much free time, but tell me what you need and I'll do my best to get it. |
You actually nailed it. After a succesfull connection to the demo server (https://demo.jellyfin.org/stable/), I was able to connect to my local server. Although I'm not sure what I'm supposed to do with the fullchain.pem. I tried generating a pfx using both (cert.pem and fullchain.pem) with the same result. At least there's a workaround that makes my older device functional. Thanks for that! |
I didn't realise there was a specific requirement related to LetsEncrypt certificates. I simply treated it like any other SSL Certificate. I'll follow this and get back on it. |
Alright, let us know when you fixed it, then we can close the issue. I'll mark it as duplicate already since it seems to be the same issue as #571. |
Okay after I read the article I previously shared, it seems to apply for load balancers, which I don't use in my current setup. Here's the script I used to generate the PFX file (Hoping I got this wrong and it's an easy fix) Declaring Variable Reported to work Tried concatenating the fullchain.pem to the key as suggested for HAProxy Same results for everything else I tried. Again, all the basics are covered (Permission, certificate valid, etc...) since it works well on everything else. I would be happy to be dumb here and be missing something obvious... |
That should indeed work. Maybe the old certificate is cached somewhere? Try clearing the app's data after setting up the cert and restarting the server. I use traefik as a reverse-proxy, so I unfortunately can't help much more with this.. |
I recreated the chain.pfx file using the command above and restarted jellyfin's services. Same result unfortunately. I would rather use a direct HTTPS connection over a loadbalancer offloading since I positioned my jellyfin server strategically so that it wouldn't interfere with my other network heavy workloads. |
This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments. If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label. This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media. |
So I encountered a very similar issue working with Nextcloud. My client worked fine on my android device until I finally fixed the "User Certificate Check" cronjob that failed for a while. I managed to resolve this by adding the following line to my Apache config: I will try to perform the same fix on jellyfin when I get a chance and document the steps here if successful. |
I didn't get a chance to attempt this on jellyfin yet, but it seems supporting older device is up to the app developers. (See reference below) The solution for me according to LetsEncrypt is to install Firefox since it also contains a local store of the necessary trusts. I'm seriously considering replacing this device, but I think jellyfin has the capability to embed the missing certificate so that no workaround is required. Cheers and still great work on this project. |
Was this ever done? Currently, everything seems setup correctly, works in all browsers I tested so far and ssl labs doesn't return any errors, but connection is still not possible. How to debug it then? |
I have same problem. I use the Let's Encrypt and renewed the certificate. But the jellyfin app still cannot connect on my server. |
Describe the bug
First off, the software is amazing and I have another more modern device that works very well.
I've completed the entire network's configuration but for some reason, one specific device's android application won't connect.
Here's some additional details to break it down:
Device1 = Samsung S6 running Android 7
Device2 = Samsung S9 running Android 9
Device3 = NVIDIA TV Shield 4K (Latest)
In short, the android app on a specific device is unable to connect, which its browser is able to connect. Which indicates that the device is able to reach the server.
The Jellyfin Client did successfully discover the server, but still won't connect to it.
The jellyfin server doesn't get any request from the affected android client.
The configuration is LAN for now until MFA is added, so no reverse proxy is involved.
See attached logs. (I edited out the domain name)
The most relevant information that I can see is "org.jellyfin.sdk.api.client.exception.ApiClientException: Unknown error occurred!"
I'm not in any rush to get this resolved, but I wonder if I could get additional logging enabled.
Logs
Application version
2.4.2
Where did you install the app from?
Google Play
Device information
Samsung Galaxy 6
Android version
Android 7
Jellyfin server version
10.7.7
Which video player implementations does this bug apply to?
The text was updated successfully, but these errors were encountered: