You can see this issue in this test file: https://github.com/fkrauthan/ktor-client-issue/blob/master/src/main/kotlin/main.kt (the test project is a simple gradle project you can just pull and run yourself). It contains one success case (generic only used for response) and one failure case (generic used for request and response)