As for gson, there were some issues caused by the fact that gson cannot inject into constructors, instead it uses unsafe to create an instance with calling constructor and then fills in fields. That could break default values, init blocks, etc. See
https://github.com/Kotlin/ktor/issues/157 if it helps.