ChrisKruegerDev/trakt-kotlin

IllegalStateException: Fail to prepare request body for sending when posting TraktSyncItems

Closed this issue · 1 comments

Looks like we need to hook up the polymorphic serializers for posting.

Error:

java.lang.IllegalStateException: Fail to prepare request body for sending. 
The body type is: class app.moviebase.trakt.model.TraktSyncItems (Kotlin reflection is not available), with Content-Type: null.
   
If you expect serialized body, please check that you have installed the corresponding plugin(like `ContentNegotiation`) and set `Content-Type` header.
    at io.ktor.client.plugins.HttpSend$Plugin$install$1.invokeSuspend(HttpSend.kt:88)
    at io.ktor.client.plugins.HttpSend$Plugin$install$1.invoke(Unknown Source:15)
    at io.ktor.client.plugins.HttpSend$Plugin$install$1.invoke(Unknown Source:4)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
    at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
    at io.ktor.util.pipeline.SuspendFunctionGun.proceedWith(SuspendFunctionGun.kt:88)
    at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invokeSuspend(HttpCallValidator.kt:130)
    at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invoke(Unknown Source:13)
    at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invoke(Unknown Source:4)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
    at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
    at io.ktor.client.plugins.HttpRequestLifecycle$Plugin$install$1.invokeSuspend(HttpRequestLifecycle.kt:38)
    at io.ktor.client.plugins.HttpRequestLifecycle$Plugin$install$1.invoke(Unknown Source:11)
    at io.ktor.client.plugins.HttpRequestLifecycle$Plugin$install$1.invoke(Unknown Source:4)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
    at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
    at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
    at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
    at io.ktor.client.HttpClient.execute$ktor_client_core(HttpClient.kt:191)
    at io.ktor.client.statement.HttpStatement.executeUnsafe(HttpStatement.kt:108)
    at io.ktor.client.statement.HttpStatement.execute(HttpStatement.kt:47)
    at io.ktor.client.statement.HttpStatement.execute(HttpStatement.kt:62)
    at app.moviebase.trakt.api.TraktSyncApi.removeWatchedHistory(TraktSyncApi.kt:94)

Oh actually, I think this is just missing the content type telling Ktor how to encode the body.