fix Live Call: include type field in WS protocol messages

encodeDefaults=false caused kotlinx.serialization to skip the
type="setup" field since it was a default value. The server's
parseClientMessage needs the type field to dispatch — without it
every setup message was rejected as "malformed_message".

Changed to encodeDefaults=true + explicitNulls=false so type is
always serialized but null optionals are still omitted.
This commit is contained in:
Bruno Deanoz 2026-06-24 13:00:42 +02:00
parent 8af2ec8259
commit 45eb5dfaea

View file

@ -14,7 +14,7 @@ import kotlinx.serialization.json.jsonPrimitive
import kotlinx.serialization.json.long import kotlinx.serialization.json.long
import kotlinx.serialization.json.longOrNull import kotlinx.serialization.json.longOrNull
private val json = Json { ignoreUnknownKeys = true; encodeDefaults = false } private val json = Json { ignoreUnknownKeys = true; encodeDefaults = true; explicitNulls = false }
// ─── Client → Server ────────────────────────────────────────────────────── // ─── Client → Server ──────────────────────────────────────────────────────