Search code examples
javaandroidkotlingoogle-gemini

Gemini Api in Android: Field 'license' is required for type with serial name


I'm trying out the template code for the Gemini API Starter template when creating a new project in Android Studio.

The default template uses "gemini-pro" model which was deprecated long back (they didn't update the template), so I changed it to gemini-1.5-flash.

But I've been getting a parsing error:

com.google.ai.client.generativeai.type.SerializationException: Something went wrong while trying to deserialize a response from the server.
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.type.GoogleGenerativeAIException$Companion.from(Exceptions.kt:39)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.GenerativeModel.generateContent(GenerativeModel.kt:88)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.GenerativeModel$generateContent$1.invokeSuspend(Unknown Source:15)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W  Caused by: io.ktor.serialization.JsonConvertException: Illegal input: Field 'license' is required for type with serial name 'com.google.ai.client.generativeai.internal.api.server.CitationSources', but it was missing at path: $.candidates[0].citationMetadata.citationSources[0]
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:90)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.ContentConverterKt$deserialize$$inlined$map$1$2.emit(Emitters.kt:224)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:116)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.ContentConverterKt$deserialize$$inlined$map$1.collect(SafeCollector.common.kt:113)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.flow.FlowKt__ReduceKt.firstOrNull(Reduce.kt:243)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.flow.FlowKt.firstOrNull(Unknown Source:1)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.ContentConverterKt.deserialize(ContentConverter.kt:123)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.contentnegotiation.ContentNegotiation.convertResponse$ktor_client_content_negotiation(ContentNegotiation.kt:230)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invokeSuspend(ContentNegotiation.kt:262)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(Unknown Source:13)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(Unknown Source:6)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.HttpClient$4.invokeSuspend(HttpClient.kt:177)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.HttpClient$4.invoke(Unknown Source:11)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.HttpClient$4.invoke(Unknown Source:6)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.proceedWith(SuspendFunctionGun.kt:88)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invokeSuspend(HttpCallValidator.kt:142)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(Unknown Source:13)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(Unknown Source:6)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.call.HttpClientCall.bodyNullable(HttpClientCall.kt:88)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.APIController.generateContent(APIController.kt:198)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.APIController$generateContent$1.invokeSuspend(Unknown Source:15)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      ... 6 more
2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W  Caused by: kotlinx.serialization.MissingFieldException: Field 'license' is required for type with serial name 'com.google.ai.client.generativeai.internal.api.server.CitationSources', but it was missing at path: $.candidates[0].citationMetadata.citationSources[0]
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:93)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:533)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationMetadata$$serializer.deserialize(Types.kt:59)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationMetadata$$serializer.deserialize(Types.kt:59)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.Candidate$$serializer.deserialize(Types.kt:51)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.Candidate$$serializer.deserialize(Types.kt:51)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:533)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.GenerateContentResponse$$serializer.deserialize(Response.kt:26)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.GenerateContentResponse$$serializer.deserialize(Response.kt:26)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.Json.decodeFromString(Json.kt:107)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:82)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      ... 36 more
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W  Caused by: kotlinx.serialization.MissingFieldException: Field 'license' is required for type with serial name 'com.google.ai.client.generativeai.internal.api.server.CitationSources', but it was missing
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationSources.<init>(Types.kt:64)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationSources$$serializer.deserialize(Types.kt:64)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationSources$$serializer.deserialize(Types.kt:64)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      ... 72 more

Has someone encountered this ?

Saw this similar question where the API wasn't returning the required field, but it was supposedly fixed (was another field): Gemini Api Android: SerializationException when deserializing response from server

Thanks in advance


Solution

  • I upgraded the generativeai dependency from 0.2.2 to 0.9.0 and now it works. Give that a try 👍