elbekD / kt-telegram-bot

Telegram Bot Library for Kotlin language
MIT License
103 stars 19 forks source link

Exception when serializing sealed InputMedia classes #54

Closed SonicNorg closed 1 year ago

SonicNorg commented 1 year ago
java.lang.IllegalStateException: Sealed class 'photo' cannot be serialized as base class 'com.elbekd.bot.types.InputMedia' because it has property name that conflicts with JSON class discriminator 'type'. You can either change class discriminator in JsonConfiguration, rename property with @SerialName annotation or fall back to array polymorphism
    at kotlinx.serialization.json.internal.PolymorphicKt.validateIfSealed(Polymorphic.kt:43) ~[kotlinx-serialization-json-jvm-1.3.3.jar:?]
    at kotlinx.serialization.json.internal.PolymorphicKt.access$validateIfSealed(Polymorphic.kt:1) ~[kotlinx-serialization-json-jvm-1.3.3.jar:?]
    at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:225) ~[kotlinx-serialization-json-jvm-1.3.3.jar:?]
    at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80) ~[kotlinx-serialization-core-jvm-1.3.3.jar:1.3.3]
    at kotlinx.serialization.internal.CollectionLikeSerializer.serialize(CollectionSerializers.kt:69) ~[kotlinx-serialization-core-jvm-1.3.3.jar:1.3.3]
    at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:219) ~[kotlinx-serialization-json-jvm-1.3.3.jar:?]
    at kotlinx.serialization.json.Json.encodeToString(Json.kt:85) ~[kotlinx-serialization-json-jvm-1.3.3.jar:?]
    at com.elbekd.bot.internal.TelegramClient.sendMediaGroup(TelegramClient.kt:1895) ~[kt-telegram-bot-2.1.5.jar:?]
    at com.elbekd.bot.internal.TelegramBot.sendMediaGroup$suspendImpl(TelegramBot.kt:426) ~[kt-telegram-bot-2.1.5.jar:?]
    at com.elbekd.bot.internal.TelegramBot.sendMediaGroup(TelegramBot.kt) ~[kt-telegram-bot-2.1.5.jar:?]
    at com.elbekd.bot.api.TelegramApi$DefaultImpls.sendMediaGroup$default(TelegramApi.kt:182) ~[kt-telegram-bot-2.1.5.jar:?]

Telegram API required property 'type' used by default as descriminator field in serialization.

elbekD commented 1 year ago

fixed