Class 'TaskPayload' is not registered for polymorphic serialization in the scope of 'EventPayload'

Viewed 1494

I have a simple sealed class and a concrete class using @Serializable. However when compiling I always end up with an error.

// EventPayload.kt
@Serializable
sealed class EventPayload {
    val type: String
        get() = this::class.simpleName!!
}
// TaskPayload.kt
@Serializable
data class TaskPayload(
    val initiator: String
) : EventPayload()

The error

Class 'TaskPayload' is not registered for polymorphic serialization in the scope of 'EventPayload'.
Mark the base class as 'sealed' or register the serializer explicitly.
kotlinx.serialization.SerializationException: Class 'TaskPayload' is not registered for polymorphic serialization in the scope of 'EventPayload'.
Mark the base class as 'sealed' or register the serializer explicitly.
0 Answers
Related