[10.11.0-RC.2] TrickplayInfo missing newly added ItemId field causing deserialization issues #7100

Closed
opened 2025-12-22 05:14:38 +01:00 by backuprepo · 1 comment
Owner

Originally created by @nielsvanvelzen on GitHub (Jun 16, 2025).

In the 10.11 based API a new "ItemId" property was added to TrickplayInfo. Most likely unintentionally because we just push the EF entity towards the API layer (which we should not..).

https://github.com/jellyfin/jellyfin-sdk-kotlin/blame/39dad1a27f46f4cdb81930ccae09e31935255d4a/jellyfin-model/src/commonMain/kotlin-generated/org/jellyfin/sdk/model/api/TrickplayInfo.kt#L22-L26

However, in the ATV app I see a LOT of deserialization issues because this item id is not (always?) populated by the server. Tested using the unstable demo server. At least the getLatestMedia and getNextUp API operations trigger this issue but there might be more.

2025-06-16 16:12:45.993  3743-3743  ItemRowAdapterHelperKt  org.jellyfin.androidtv.debug         D  Creating items from 0 existing and 0 new, adapter size is 0
2025-06-16 16:12:46.005  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  Failed to retrieve items
2025-06-16 16:12:46.005  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  org.jellyfin.sdk.api.client.exception.InvalidContentException: Deserialization failed
2025-06-16 16:12:46.005  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.api.operations.TvShowsApi.getNextUp(TvShowsApi.kt:441)
2025-06-16 16:12:46.005  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.api.operations.TvShowsApi$getNextUp$1.invokeSuspend(Unknown Source:35)
2025-06-16 16:12:46.005  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  Caused by: kotlinx.serialization.MissingFieldException: Field 'ItemId' is required for type with serial name 'org.jellyfin.sdk.model.api.TrickplayInfo', but it was missing at path: $.Items[0].Trickplay['f717d85df782816c2ab75423e32f740b']['320']
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:95)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168)
2025-06-16 16:12:46.006  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.CompositeDecoder.decodeSerializableElement$default(Decoding.kt:539)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:111)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:84)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.CompositeDecoder.decodeSerializableElement$default(Decoding.kt:539)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:111)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:84)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
2025-06-16 16:12:46.007  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:78)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.model.api.BaseItemDto$$serializer.deserialize(BaseItemDto.kt:33)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.model.api.BaseItemDto$$serializer.deserialize(BaseItemDto.kt:33)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.CompositeDecoder.decodeSerializableElement$default(Decoding.kt:539)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
2025-06-16 16:12:46.008  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.model.api.BaseItemDtoQueryResult$$serializer.deserialize(BaseItemDtoQueryResult.kt:16)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.model.api.BaseItemDtoQueryResult$$serializer.deserialize(BaseItemDtoQueryResult.kt:16)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.Json.decodeFromString(Json.kt:149)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.api.operations.TvShowsApi.getNextUp(TvShowsApi.kt:438)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	... 9 more
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  Caused by: kotlinx.serialization.MissingFieldException: Field 'ItemId' is required for type with serial name 'org.jellyfin.sdk.model.api.TrickplayInfo', but it was missing
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.model.api.TrickplayInfo.<init>(TrickplayInfo.kt:20)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.model.api.TrickplayInfo$$serializer.deserialize(TrickplayInfo.kt:20)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at org.jellyfin.sdk.model.api.TrickplayInfo$$serializer.deserialize(TrickplayInfo.kt:20)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
2025-06-16 16:12:46.009  3743-3743  ItemRowAdapter          org.jellyfin.androidtv.debug         W  	... 51 more
Originally created by @nielsvanvelzen on GitHub (Jun 16, 2025). In the 10.11 based API a new "ItemId" property was added to TrickplayInfo. Most likely unintentionally because we just push the EF entity towards the API layer (which we should not..). https://github.com/jellyfin/jellyfin-sdk-kotlin/blame/39dad1a27f46f4cdb81930ccae09e31935255d4a/jellyfin-model/src/commonMain/kotlin-generated/org/jellyfin/sdk/model/api/TrickplayInfo.kt#L22-L26 However, in the ATV app I see a LOT of deserialization issues because this item id is not (always?) populated by the server. Tested using the unstable demo server. At least the getLatestMedia and getNextUp API operations trigger this issue but there might be more. ``` 2025-06-16 16:12:45.993 3743-3743 ItemRowAdapterHelperKt org.jellyfin.androidtv.debug D Creating items from 0 existing and 0 new, adapter size is 0 2025-06-16 16:12:46.005 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W Failed to retrieve items 2025-06-16 16:12:46.005 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W org.jellyfin.sdk.api.client.exception.InvalidContentException: Deserialization failed 2025-06-16 16:12:46.005 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.api.operations.TvShowsApi.getNextUp(TvShowsApi.kt:441) 2025-06-16 16:12:46.005 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.api.operations.TvShowsApi$getNextUp$1.invokeSuspend(Unknown Source:35) 2025-06-16 16:12:46.005 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W Caused by: kotlinx.serialization.MissingFieldException: Field 'ItemId' is required for type with serial name 'org.jellyfin.sdk.model.api.TrickplayInfo', but it was missing at path: $.Items[0].Trickplay['f717d85df782816c2ab75423e32f740b']['320'] 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:95) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168) 2025-06-16 16:12:46.006 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.CompositeDecoder.decodeSerializableElement$default(Decoding.kt:539) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:111) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:84) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.CompositeDecoder.decodeSerializableElement$default(Decoding.kt:539) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:111) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:84) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69) 2025-06-16 16:12:46.007 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:78) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.model.api.BaseItemDto$$serializer.deserialize(BaseItemDto.kt:33) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.model.api.BaseItemDto$$serializer.deserialize(BaseItemDto.kt:33) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.CompositeDecoder.decodeSerializableElement$default(Decoding.kt:539) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51) 2025-06-16 16:12:46.008 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.model.api.BaseItemDtoQueryResult$$serializer.deserialize(BaseItemDtoQueryResult.kt:16) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.model.api.BaseItemDtoQueryResult$$serializer.deserialize(BaseItemDtoQueryResult.kt:16) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.Json.decodeFromString(Json.kt:149) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.api.operations.TvShowsApi.getNextUp(TvShowsApi.kt:438) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W ... 9 more 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W Caused by: kotlinx.serialization.MissingFieldException: Field 'ItemId' is required for type with serial name 'org.jellyfin.sdk.model.api.TrickplayInfo', but it was missing 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.model.api.TrickplayInfo.<init>(TrickplayInfo.kt:20) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.model.api.TrickplayInfo$$serializer.deserialize(TrickplayInfo.kt:20) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at org.jellyfin.sdk.model.api.TrickplayInfo$$serializer.deserialize(TrickplayInfo.kt:20) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69) 2025-06-16 16:12:46.009 3743-3743 ItemRowAdapter org.jellyfin.androidtv.debug W ... 51 more ```
backuprepo 2025-12-22 05:14:38 +01:00
Author
Owner

@nielsvanvelzen commented on GitHub (Jun 16, 2025):

Most likely caused by this change from #13945. I propose fixing it by adding a proper DTO type for the API layer to avoid this issue in the future. the dto would not contain the item id.

fe2596dc0e (diff-6490c9a80416d9a3175b594c96345359f531762495982aad287e6f1c02450667L17)

@nielsvanvelzen commented on GitHub (Jun 16, 2025): Most likely caused by this change from #13945. I propose fixing it by adding a proper DTO type for the API layer to avoid this issue in the future. the dto would not contain the item id. https://github.com/jellyfin/jellyfin/commit/fe2596dc0e389c0496a384cc1893fddd4742ed37#diff-6490c9a80416d9a3175b594c96345359f531762495982aad287e6f1c02450667L17
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#7100
No description provided.