jarnedemeulemeester / findroid

Third-party native Jellyfin Android app
GNU General Public License v3.0
2.63k stars 163 forks source link

Deserialization error on some episodes #185

Closed CommanderRedYT closed 2 months ago

CommanderRedYT commented 2 years ago

Describe the bug On some series (always consistent over whole season), when clicking on a single episode or on play season / series, a "Deserialization failed" error shows up

To Reproduce Steps to reproduce the behavior: I'm not completely sure, but basic playing of episodes

Expected behavior Display episode information / play video

Screenshots Screenshot_20221026-203657_Findroid.jpg

Screenshot_20221026-203647_Findroid.jpg

Device info (please complete the following information):

Additional context Stack Trace

Deserialization failed
 sa.b: Deserialization failed
    at androidx.appcompat.widget.x0.b(SourceFile:3)
    at va.h.a(SourceFile:12)
    at va.h$a.j(Unknown Source:35)
    at v8.a.k(Unknown Source:8)
    at k9.q0.run(Unknown Source:86)
    at p9.e.run(Unknown Source:12)
    at q9.l.run(Unknown Source:2)
    at q9.a$a.run(SourceFile:9)
Caused by: s9.h: org.jellyfin.sdk.model.api.MediaStreamType does not contain element with name 'Data' at path $.Items[0].MediaSources[0].MediaStreams[2].Type
    at v9.y0.e(Unknown Source:62)
    at x9.v.S(SourceFile:2)
    at org.jellyfin.sdk.model.api.MediaStreamType$$serializer.deserialize(Unknown Source:13)
    at org.jellyfin.sdk.model.api.MediaStreamType$$serializer.deserialize(Unknown Source:0)
    at g8.t.q(SourceFile:18)
    at x9.v.f(Unknown Source:5)
    at a2.f.i0(Unknown Source:10)
    at x9.v.i0(SourceFile:2)
    at org.jellyfin.sdk.model.api.MediaStream$$serializer.deserialize(Unknown Source:326)
    at org.jellyfin.sdk.model.api.MediaStream$$serializer.deserialize(Unknown Source:0)
    at g8.t.q(SourceFile:18)
    at x9.v.f(Unknown Source:5)
    at a2.f.i0(Unknown Source:10)
    at x9.v.i0(SourceFile:2)
    at v9.p.f(SourceFile:1)
    at v9.a.e(SourceFile:2)
    at v9.a.deserialize(Unknown Source:5)
    at g8.t.q(SourceFile:18)
    at x9.v.f(Unknown Source:5)
    at a2.f.H(Unknown Source:32)
    at org.jellyfin.sdk.model.api.MediaSourceInfo$$serializer.deserialize(Unknown Source:415)
    at org.jellyfin.sdk.model.api.MediaSourceInfo$$serializer.deserialize(Unknown Source:0)
    at g8.t.q(SourceFile:18)
    at x9.v.f(Unknown Source:5)
    at a2.f.i0(Unknown Source:10)
    at x9.v.i0(SourceFile:2)
    at v9.p.f(SourceFile:1)
    at v9.a.e(SourceFile:2)
    at v9.a.deserialize(Unknown Source:5)
    at g8.t.q(SourceFile:18)
    at x9.v.f(Unknown Source:5)
    at a2.f.H(Unknown Source:32)
    at org.jellyfin.sdk.model.api.BaseItemDto$$serializer.deserialize(Unknown Source:12082)
    at org.jellyfin.sdk.model.api.BaseItemDto$$serializer.deserialize(Unknown Source:0)
    at g8.t.q(SourceFile:18)
    at x9.v.f(Unknown Source:5)
    at a2.f.i0(Unknown Source:10)
    at x9.v.i0(SourceFile:2)
    at v9.p.f(SourceFile:1)
    at v9.a.e(SourceFile:2)
    at v9.a.deserialize(Unknown Source:5)
    at g8.t.q(SourceFile:18)
    at x9.v.f(Unknown Source:5)
    at a2.f.H(Unknown Source:32)
    at org.jellyfin.sdk.model.api.BaseItemDtoQueryResult$$serializer.deserialize(Unknown Source:66)
    at org.jellyfin.sdk.model.api.BaseItemDtoQueryResult$$serializer.deserialize(Unknown Source:0)
    at g8.t.q(SourceFile:18)
    at x9.v.f(Unknown Source:5)
    at w9.a.b(Unknown Source:20)
    at va.h.a(SourceFile:8)
    ... 6 more
jarnedemeulemeester commented 2 years ago

What's the version of your Jellyfin server?

CommanderRedYT commented 2 years ago

Version 10.8.5 running on ODROID HC4 (arm64)

msycn commented 2 years ago

I think same issue only appears in episodes, because the app times out after all videos have been requested https://github.com/jarnedemeulemeester/findroid/issues/187

If you play the last episode of Season will faster than from the first episode

CommanderRedYT commented 2 years ago

What I don't get is why the error only appears with about 4 seasons of a show, but all other 8 shows or i dont know how many movies work just fine.

I've looked at the metadata of the mp4 files and they do not have something that could have something to do with it.

AnonymousWebHacker commented 2 years ago

some issues

AnonymousWebHacker commented 1 year ago

The problem is with the server how to deliver the data to android clients, or problem of android clients,[ findroid or jellyfin client.] This happens when, for example, you have an mp4 video with a dual subtitle or a forced subtitle with ffmpeg without metadata.

Temporary solution, is to put the video in an mkv container (no need to transcode)

This error occurs in both findroid and jellyfin client for android, however it does not occur in desktop versions. I really think the problem is from android clients with mp4 videos and embedded subtitles

jarnedemeulemeester commented 2 months ago

This has been fixed for quite some time now. The deserialization error originated from the jellyfin kotlin sdk.