Jellyfin-android: v2.1.x Connection Failure

Created on 10 Nov 2020  ·  7Comments  ·  Source: jellyfin/jellyfin-android

Describe the bug

A continuation of #172 in v2.1.3 (tested in the master branch too). I tried installing and using all from v2.1.0 to the latest release v2.1.2/3 in my physical phone using Samsung Galaxy S10+ and it's still producing the same bug. I've included all the relevant logs below, wrapped in disclosure. I've also included some additional context at the bottom for more info.

To Reproduce

  1. Launch the app (specifically with Galaxy S10+ emulator if possible?)
  2. Fill the host, tested with https://demo.jellyfin.org/stable/ too
  3. Fill the username, bug works even with invalid account, e.g. user: a
  4. Click "Sign In" and Error immediately shows

Expected behavior

App can sign in to the server

Logs


Right after pressing "Connect" button to server

I/ViewRootImpl@adc7720[MainActivity]: ViewPostIme pointer 0
I/ViewRootImpl@adc7720[MainActivity]: ViewPostIme pointer 1
D/InputMethodManager: HSIFW - flag : 0
I/ConnectFragment: checkServerUrlAndConnection https://demo.jellyfin.org/stable/
I/ConnectFragment: Address candidates are [https://demo.jellyfin.org/stable/]
D/TimberLogger: Adding request to queue: https://demo.jellyfin.org/stable/System/Info/Public?format=json
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/ViewRootImpl@adc7720[MainActivity]: MSG_RESIZED: frame=(0,0,1080,2280) ci=(0,110,0,0) vi=(0,110,0,0) or=1
I/ViewRootImpl@adc7720[MainActivity]: Relayout returned: old=(0,0,1080,2280) new=(0,0,1080,2280) req=(1080,2280)0 dur=5 res=0x1 s={true 509158830080} ch=false
I/OpenGLRenderer: doUpdatePositionAsync is called and callVoidMethod
E/Volley: [304825] HttpHeaderParser.parseDateAsEpoch: Unable to parse dateStr: 0, falling back to 0
    java.text.ParseException: Unparseable date: "0"
        at java.text.DateFormat.parse(DateFormat.java:362)
        at com.android.volley.toolbox.HttpHeaderParser.parseDateAsEpoch(HttpHeaderParser.java:135)
        at com.android.volley.toolbox.HttpHeaderParser.parseCacheHeaders(HttpHeaderParser.java:97)
        at com.android.volley.toolbox.StringRequest.parseNetworkResponse(StringRequest.java:98)
        at org.jellyfin.apiclient.interaction.VolleyStringRequest.parseNetworkResponse(VolleyStringRequest.java:89)
        at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:143)
        at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
        at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)
I/TimberLogger: Response received from: https://demo.jellyfin.org/stable/System/Info/Public?format=json
I/ConnectFragment: Server at https://demo.jellyfin.org/stable/ with version 10.6.4 valid: true
D/InputMethodManager: prepareNavigationBarInfo() DecorView@e3f9ebb[MainActivity]
    getNavigationBarColor() 0
V/InputMethodManager: Starting input: tba=org.jellyfin.mobile.debug ic=com.android.internal.widget.EditableInputConnection@e69e8b2 mNaviBarColor 0 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
D/InputMethodManager: startInputInner - Id : 0
I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
D/InputTransport: Input channel destroyed: 'ClientS', fd=204
D/LeakCanary: Watching instance of androidx.constraintlayout.widget.ConstraintLayout (org.jellyfin.mobile.fragment.ConnectFragment received Fragment#onDestroyView() callback (references to its views should be cleared to prevent leaks)) with key 6af96a37-79c2-4bbf-807b-71e0477fc1b8
D/LeakCanary: Watching instance of android.webkit.WebView (org.jellyfin.mobile.fragment.WebViewFragment received Fragment#onDestroyView() callback (references to its views should be cleared to prevent leaks)) with key b4b44484-06f3-439e-a2c0-f11b5c649c24
    Watching instance of androidx.loader.app.LoaderManagerImpl$LoaderViewModel (androidx.loader.app.LoaderManagerImpl$LoaderViewModel received ViewModel#onCleared() callback) with key 2cab1f01-82ca-4d42-bf1b-6c7500d4ad93
    Watching instance of leakcanary.internal.ViewModelClearedWatcher (leakcanary.internal.ViewModelClearedWatcher received ViewModel#onCleared() callback) with key b824edb1-95ff-46e3-88bc-321a683b073e
D/LeakCanary: Watching instance of org.jellyfin.mobile.fragment.WebViewFragment (org.jellyfin.mobile.fragment.WebViewFragment received Fragment#onDestroy() callback) with key 9baccccd-e8c3-467a-9ecc-13d5e7a5aaec
V/StudioTransport: Handling agent command 1200 for pid: 15162.
I/OpenGLRenderer: doUpdatePositionAsync is called and callVoidMethod
V/StudioTransport: Handling agent command 1200 for pid: 15162.
D/SensorManager: registerListener :: 20, Samsung Game Rotation Vector, 16666, 0,  
D/SensorManager: unregisterListener :: 20, Samsung Game Rotation Vector,  
I/chromium: [INFO:CONSOLE(266)] "Begin ConnectionManager constructor", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(1)] "loading ApiClient singleton", source: https://demo.jellyfin.org/stable/web/scripts/site.js (1)
    [INFO:CONSOLE(1)] "creating ApiClient singleton", source: https://demo.jellyfin.org/stable/web/scripts/site.js (1)
I/chromium: [INFO:CONSOLE(266)] "ApiClient serverAddress: https://demo.jellyfin.org/stable", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "ApiClient appName: Jellyfin Android", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "ApiClient appVersion: 0.0.0-dev.1", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "ApiClient deviceName: Max 吴", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "ApiClient deviceId: e979c0fbbb3ae156", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "credentials initialized with: {"Servers":[{"DateLastAccessed":1604993101511,"LastConnectionMode":2,"ManualAddress":"https://demo.jellyfin.org/stable","manualAddressOnly":true,"Name":"Stable Demo","Id":"713dc3fe952b438fa70ed35e4ef0525a","LocalAddress":"http://172.17.0.2:8096/stable","UserId":null,"AccessToken":null}]}", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(1)] "loaded ApiClient singleton", source: https://demo.jellyfin.org/stable/web/scripts/site.js (1)
    [INFO:CONSOLE(1)] "initAfterDependencies promises resolved", source: https://demo.jellyfin.org/stable/web/scripts/site.js (1)
I/in.mobile.debu: Explicit concurrent copying GC freed 68662(3849KB) AllocSpace objects, 14(392KB) LOS objects, 54% free, 5207KB/11MB, paused 96us total 60.580ms
D/LeakCanary: Found 1 object retained, not dumping heap yet (app is visible & < 5 threshold)
I/in.mobile.debu: Explicit concurrent copying GC freed 13292(733KB) AllocSpace objects, 0(0B) LOS objects, 57% free, 4617KB/10MB, paused 65us total 39.155ms
I/in.mobile.debu: Explicit concurrent copying GC freed 932(281KB) AllocSpace objects, 0(0B) LOS objects, 57% free, 4608KB/10MB, paused 133us total 64.393ms
I/chromium: [INFO:CONSOLE(1)] "using default fonts", source: https://demo.jellyfin.org/stable/web/scripts/site.js (1)
I/chromium: [INFO:CONSOLE(1)] "loading installed plugins", source: https://demo.jellyfin.org/stable/web/scripts/site.js (1)
I/chromium: [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/playAccessValidation/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/experimentalWarnings/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/htmlAudioPlayer/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/htmlVideoPlayer/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/photoPlayer/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/bookPlayer/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/youtubePlayer/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/backdropScreensaver/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/logoScreensaver/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/sessionPlayer/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): plugins/chromecastPlayer/plugin", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): native/exoplayer", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
    [INFO:CONSOLE(1)] "Loading plugin (via deprecated requirejs method): native/externalplayer", source: https://demo.jellyfin.org/stable/web/components/pluginManager.js?v=10 (1)
I/in.mobile.debu: Explicit concurrent copying GC freed 2046(354KB) AllocSpace objects, 0(0B) LOS objects, 56% free, 4686KB/10MB, paused 208us total 72.184ms
I/chromium: [INFO:CONSOLE(1)] "document.registerElement is deprecated and will be removed in M80, around February 2020. Please use window.customElements.define instead. See https://www.chromestatus.com/features/4642138092470272 and https://developers.google.com/web/updates/2019/07/web-components-time-to-upgrade for more details.", source: https://demo.jellyfin.org/stable/web/elements/emby-button/paper-icon-button-light.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "setting page base to /stable/web", source: https://demo.jellyfin.org/stable/web/components/appRouter.js?v=10 (1)
I/chromium: [INFO:CONSOLE(266)] "returning instance from getOrAddApiClient", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/in.mobile.debu: Explicit concurrent copying GC freed 1370(348KB) AllocSpace objects, 0(0B) LOS objects, 57% free, 4594KB/10MB, paused 208us total 64.054ms
I/chromium: [INFO:CONSOLE(1)] "begin onAppReady", source: https://demo.jellyfin.org/stable/web/scripts/site.js (1)
I/chromium: [INFO:CONSOLE(1)] "onAppReady: loading dependencies", source: https://demo.jellyfin.org/stable/web/scripts/site.js (1)
I/in.mobile.debu: Explicit concurrent copying GC freed 2107(340KB) AllocSpace objects, 0(0B) LOS objects, 57% free, 4621KB/10MB, paused 130us total 60.527ms
I/chromium: [INFO:CONSOLE(1)] "defining core routes", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /addserver.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /selectserver.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /login.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /forgotpassword.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /forgotpasswordpin.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /mypreferencesmenu.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /myprofile.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /mypreferencesdisplay.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /mypreferenceshome.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /mypreferencesplayback.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /mypreferencessubtitles.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /dashboard.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /dashboardgeneral.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /networking.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /devices.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /device.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /dlnaprofile.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /dlnaprofiles.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /addplugin.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /library.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /librarydisplay.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /dlnasettings.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /edititemmetadata.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /encodingsettings.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /log.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /metadataimages.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /metadatanfo.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /notificationsetting.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /notificationsettings.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /playbackconfiguration.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /availableplugins.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /repositories.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /home.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /search.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /list.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /details", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /livetv.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /livetvguideprovider.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /livetvsettings.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /livetvstatus.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /livetvtuner.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /movies.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /music.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /installedplugins.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /scheduledtask.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /scheduledtasks.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /serveractivity.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /apikeys.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /streamingsettings.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /tv.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /useredit.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /userlibraryaccess.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /usernew.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /userparentalcontrol.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /userpassword.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /userprofiles.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /wizardremoteaccess.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /wizardfinish.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /wizardlibrary.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /wizardsettings.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /wizardstart.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /wizarduser.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /videoosd.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "defining route: /nowplaying.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /configurationpage", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
    [INFO:CONSOLE(1)] "defining route: /index.html", source: https://demo.jellyfin.org/stable/web/scripts/routes.js?v=10 (1)
I/chromium: [INFO:CONSOLE(266)] "returning instance from getOrAddApiClient", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "Begin connect", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "Begin getAvailableServers", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "Begin connectToServers, with 1 servers", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "begin connectToServer", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "tryReconnect: https://demo.jellyfin.org/stable", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "getTryConnectPromise https://demo.jellyfin.org/stable", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "ConnectionManager requesting url: https://demo.jellyfin.org/stable/system/info/public", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "fetchWithTimeout: timeoutMs: 20000, url: https://demo.jellyfin.org/stable/system/info/public", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "fetchWithTimeout: succeeded connecting to url: https://demo.jellyfin.org/stable/system/info/public", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "ConnectionManager response status: 200, url: https://demo.jellyfin.org/stable/system/info/public", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "Reconnect succeeded to https://demo.jellyfin.org/stable", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "returning instance from getOrAddApiClient", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "Setting server address to https://demo.jellyfin.org/stable", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "resolving connectToServers with result.State: ServerSignIn", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "Requesting url without automatic networking: https://demo.jellyfin.org/stable/users/public", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(1)] "appRouter - processing path request /stable/web#!/login.html", source: https://demo.jellyfin.org/stable/web/components/appRouter.js?v=10 (1)
I/chromium: [INFO:CONSOLE(1)] "appRouter - proceeding to /stable/web#!/login.html", source: https://demo.jellyfin.org/stable/web/components/appRouter.js?v=10 (1)
I/in.mobile.debu: Explicit concurrent copying GC freed 1847(328KB) AllocSpace objects, 0(0B) LOS objects, 56% free, 4709KB/10MB, paused 131us total 67.773ms
I/chromium: [INFO:CONSOLE(266)] "returning instance from getOrAddApiClient", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "Requesting url without automatic networking: https://demo.jellyfin.org/stable/users/public", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
    [INFO:CONSOLE(266)] "Requesting url without automatic networking: https://demo.jellyfin.org/stable/Branding/Configuration", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'Window': Value is not a valid ByteString.", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)


Right after pressing "Sign In" button

I/ViewRootImpl@adc7720[MainActivity]: ViewPostIme pointer 0
I/ViewRootImpl@adc7720[MainActivity]: ViewPostIme pointer 1
I/chromium: [INFO:CONSOLE(1)] "inputManager: tried to process command with no action assigned: unknown", source: https://demo.jellyfin.org/stable/web/scripts/inputManager.js?v=10 (1)
I/chromium: [INFO:CONSOLE(266)] "returning instance from getOrAddApiClient", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
I/chromium: [INFO:CONSOLE(266)] "Requesting url without automatic networking: https://demo.jellyfin.org/stable/Users/authenticatebyname", source: https://demo.jellyfin.org/stable/web/bundle.js?v=10 (266)
D/InputMethodManager: HSIFW - flag : 0
I/chromium: [INFO:CONSOLE(0)] "Autofocus processing was blocked because a document already has a focused element.", source: https://demo.jellyfin.org/stable/web/index.html#!/login.html?serverid=713dc3fe952b438fa70ed35e4ef0525a (0)
D/InputMethodManager: HSIFW - flag : 0

Screenshots
Exactly the same as #172

System (please complete the following information):

  • App version: 2.1.3 or master branch
  • Android version: Android 10
  • Device manufacturer and model: Samsung Galaxy S10+
  • Jellyfin server version: 10.6.4 stable
  • The type of video player implementation used: -

Additional context

I've cloned this locally and tried running it with a Pixel 3A - API 30 - Android 11.0 - x86 CPU/ABI and I'm able to log in to my server with no problem. I'm guessing it has something to do with Galaxy devices, specifically S series?

bug

Most helpful comment

Ok, I found the problem

https://github.com/nielsvanvelzen/jellyfin-apiclient-java/blob/a626bbe15da2929d9470541a5c610420b8094e9c/android/src/main/kotlin/org/jellyfin/apiclient/interaction/AndroidDevice.kt#L14

In Android the unicode support is enabled by default. that means \w would match all letters and all digits from any languages including the character

The solution is to use a more strict pattern, e. g.

  • [^a-zA-Z0-9\s]
  • [^\x20-\x7E]
  • [^ -~]
  • [\p{InBasic_Latin}]&&[^\p{Cntrl}]

All 7 comments

https://github.com/jellyfin/jellyfin-android/blob/6c89ce1be8f53f2918a885db2b8819f5ecbc58dd/app/src/main/java/org/jellyfin/mobile/fragment/WebViewFragment.kt#L197-L200
It doesn't seem to have any problem connecting to the server since this code is executed and I'm getting prompt to disable battery optimizations, so perhaps something wrong with the Sign In callback?

Looking at the logs I can tell it is able to connect to the server fine and load the webui. Does Jellyfin work in the webbrowser?

Indeed and yes, it does work in the web browser. I can't seem to debug this locally too since it looks like it's failing from the server web scripts (assuming from the logs). This is a weird one because it's failing only on my physical phone, I don't know what's different between my emulated device and my real one.

Yep, duplicate of https://github.com/jellyfin/jellyfin-android/issues/172#issuecomment-716032225

Workaround: remove 吴 from custom device name.

Max 吴 -> Max

So jellyfin/jellyfin-apiclient-java#137 seems not to be enough

Woah, I didn't notice the character in my custom device name, removing it immediately solves this, thanks!!

That was a nightmare to debug, when v.2.1 was released and I still couldn't connect, I thought for sure there's something wrong with my phone...

The device name issue should've been fixed in #208 though. Weird that it popped up again.

Ok, I found the problem

https://github.com/nielsvanvelzen/jellyfin-apiclient-java/blob/a626bbe15da2929d9470541a5c610420b8094e9c/android/src/main/kotlin/org/jellyfin/apiclient/interaction/AndroidDevice.kt#L14

In Android the unicode support is enabled by default. that means \w would match all letters and all digits from any languages including the character

The solution is to use a more strict pattern, e. g.

  • [^a-zA-Z0-9\s]
  • [^\x20-\x7E]
  • [^ -~]
  • [\p{InBasic_Latin}]&&[^\p{Cntrl}]
Was this page helpful?
0 / 5 - 0 ratings

Related issues

nielsvanvelzen picture nielsvanvelzen  ·  5Comments

P-Daddy picture P-Daddy  ·  6Comments

idittansikte picture idittansikte  ·  6Comments

SteveDinn picture SteveDinn  ·  4Comments

vegedb picture vegedb  ·  6Comments