Closed
Description
Version
2.4.1
Description
Given a query that has a boolean arg with a default value, e.g.
query MyQuery($myBool: Boolean = true) {
getCityByName(name: "London") {
id @include(if: $myBool)
}
}
Parsing this query via ApolloClient
works as expected. However, using Operation::parse
fails with this exception:
kotlin.TypeCastException: null cannot be cast to non-null type kotlin.Boolean
at com.apollographql.apollo.api.internal.SimpleResponseReader.shouldSkip(SimpleResponseReader.kt:133)
at com.apollographql.apollo.api.internal.SimpleResponseReader.readCustomType(SimpleResponseReader.kt:99)
at MyQuery$GetCityByName$Companion.invoke(MyQuery.kt:123)
at MyQuery$Data$Companion$invoke$1$getCityByName$1.invoke(MyQuery.kt:153)
at MyQuery$Data$Companion$invoke$1$getCityByName$1.invoke(MyQuery.kt:145)
at com.apollographql.apollo.api.internal.ResponseReader$readObject$1.read(ResponseReader.kt:26)
at com.apollographql.apollo.api.internal.SimpleResponseReader.readObject(SimpleResponseReader.kt:80)
at com.apollographql.apollo.api.internal.ResponseReader$DefaultImpls.readObject(ResponseReader.kt:24)
at com.apollographql.apollo.api.internal.SimpleResponseReader.readObject(SimpleResponseReader.kt:11)
at MyQuery$Data$Companion.invoke(MyQuery.kt:152)
at MyQuery$responseFieldMapper$$inlined$invoke$1.map(ResponseFieldMapper.kt:22)
at com.apollographql.apollo.api.internal.SimpleOperationResponseParser.parse(SimpleOperationResponseParser.kt:39)
at com.apollographql.apollo.api.internal.SimpleOperationResponseParser.parse(SimpleOperationResponseParser.kt:26)
at MyQuery.parse(MyQuery.kt:66)
at MyQuery.parse(MyQuery.kt:73)
Sample project
Run ./gradlew run
to trigger the issue.