Avro field default values

Solution 1:

The default value of a union corresponds to the first schema of the union (Source). Your union is defined as ["long", "null"] therefor the default value must be a long number. null is not a long number that is why you are getting an error.

If you still want to define null as a default value then put null schema first, i.e. change the union to ["null", "long"] instead.

Solution 2:

Its a bug at Avro's end which is marked as Not A Problem . You need to add default attribute to mention default value.

{"name": "xxx", "type": ["null", "boolean"], "default": null}

Please refer AVRO-1803.

Solution 3:

You must provide "default": null not "default": "null" in the schema to get the builder method working

Solution 4:

I think the problem is that you are using builder,

According to the documentation of the Java API:

using a builder requires setting all fields, even if they are null