christiandeange / ozone

Kotlin Multiplatform bindings for Bluesky
MIT License
36 stars 6 forks source link

When calling getTimeline it tries to retrieve a serializer for null? #3

Closed itsWindows11 closed 11 months ago

itsWindows11 commented 11 months ago

Doesn't happen for the other endpoints though, e.g. getUnreadCount works.

io.ktor.serialization.JsonConvertException: Illegal input: Polymorphic serializer was not found for missing class discriminator ('null')
                                                                                                    JSON input: .....dexedAt":"2023-11-20T14:23:09.977Z","viewer":{},"labels":[]}
                                                                                                        at io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:90)
                                                                                                        at io.ktor.serialization.kotlinx.KotlinxSerializationConverter$deserialize$1.invokeSuspend(Unknown Source:15)
                                                                                                        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                                                                                        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:942)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:226)
                                                                                                        at android.os.Looper.loop(Looper.java:313)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8762)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
                                                                                                        Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@fe24284, Dispatchers.Main.immediate]
                                                                                                    Caused by: kotlinx.serialization.json.internal.JsonDecodingException: Polymorphic serializer was not found for missing class discriminator ('null')
                                                                                                    JSON input: .....dexedAt":"2023-11-20T14:23:09.977Z","viewer":{},"labels":[]}
                                                                                                        at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24)
                                                                                                        at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:32)
                                                                                                        at kotlinx.serialization.json.internal.PolymorphicKt.throwSerializerNotFound(Polymorphic.kt:79)
                                                                                                        at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:68)
                                                                                                        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:81)
                                                                                                        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
                                                                                                        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
                                                                                                        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)
                                                                                                        at app.bsky.feed.ReplyRef$$serializer.deserialize(ReplyRef.kt:69)
                                                                                                        at app.bsky.feed.ReplyRef$$serializer.deserialize(ReplyRef.kt:69)
                                                                                                        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
                                                                                                        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
                                                                                                        at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)
                                                                                                        at app.bsky.feed.FeedViewPost$$serializer.deserialize(FeedViewPost.kt:21)
                                                                                                        at app.bsky.feed.FeedViewPost$$serializer.deserialize(FeedViewPost.kt:21)
                                                                                                        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
                                                                                                        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
                                                                                                        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
                                                                                                        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)
                                                                                                        at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:533)
                                                                                                        at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
                                                                                                        at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
                                                                                                        at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
                                                                                                        at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
                                                                                                        at sh.christian.ozone.api.runtime.ImmutableListSerializer.deserialize(ImmutableListSerializer.kt:29)
2023-11-20 16:40:01.880 26358-26358 AndroidRuntime          ..................               E      at sh.christian.ozone.api.runtime.ImmutableListSerializer.deserialize(ImmutableListSerializer.kt:13)
                                                                                                        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
                                                                                                        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
                                                                                                        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
                                                                                                        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)
                                                                                                        at app.bsky.feed.GetTimelineResponse$$serializer.deserialize(getTimeline.kt:33)
                                                                                                        at app.bsky.feed.GetTimelineResponse$$serializer.deserialize(getTimeline.kt:33)
                                                                                                        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
                                                                                                        at kotlinx.serialization.json.Json.decodeFromString(Json.kt:107)
                                                                                                        at io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:82)
                                                                                                        ... 11 more
itsWindows11 commented 11 months ago

Nevermind, seems that removing my own ContentNegotiation fixes that.