Tranquility 0.8.3 fails to start with JSON Flatten Spec


I am using Tranquility 0.8.3 to push real-time streams. I need to push **nested **JSON objects and I have implemented using JSON Flatten Spec. Tranquility fails to start when root type field is specified. Stacktrace below.

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Instantiation of [simple type, class] value failed: json can not be null or empty

at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.wrapException(

at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromObjectWith(


at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(

at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(

at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(

at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(

at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(

at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(

at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(

at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(

at com.fasterxml.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(

at com.fasterxml.jackson.databind.ObjectMapper._convert(

… 29 more


Can you provide your tranquility spec?


Here is the tranquility spec I am using.

telemetry-tranquility-server.json (6.5 KB)

There was a bug in JSONPathParser that was fixed in Druid 0.10.0, where even for “root” fields it tries to compile a path from the “expr” field:

However, Tranquility is still built against an older version of Druid without that fix, so you’ll need to put a non-empty dummy value for “expr” on all of the “root” type fields.

Thanks Jonathan Wei. It worked after adding non-empty dummy value for “expr” on all of the “root” type fields.