以前kotlinx.serializationでjsonを組み立てるときに、ごくまれにNaNが入るフィールドがあり、kotlinx.serialization.json.internal.JsonEncodingExceptionが発生していたのでした。
allowSpecialFloatingPointValues = trueを指定すればNaNのままで通せます。
{"value":NaN}
上記のようにNaNが入るjsonは、jsonとしては正しくないものの、JVM界隈ではポピュラーなんだそうです。