Hi, I have an avro schema : { "name": "Test", "type": "record", "fields": [{ "name": "container", "type": ["null", "string"] }
] } The container field is an union implies it would allow any string or null value to that field. https://avro.apache.org/docs/1.7.7/spec.html#Unions So to make my avro serialization code generic, I am using GenericRecord api's for serializing the avro data. When I am trying to serialize this record : {"container":null} , it runs completely fine. But in when I try to serialize the container field with data (Ex: {"container":"testData"}), it throws error saying : Exception in thread "main" org.apache.avro.AvroTypeException: Expected start-union. Got VALUE_STRING at org.apache.avro.io.JsonDecoder.error(JsonDecoder.java:697) at org.apache.avro.io.JsonDecoder.readIndex(JsonDecoder.java:441) at org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:290) at org.apache.avro.io.parsing.Parser.advance(Parser.java:88) at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:267) at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:155) at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:193) at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:183) at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:151) at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:142) Can anyone please help me with what am I doing wrong here. PS: I am using avro-1.7.7 version. Thank you. Regards Devendra Tomar