REST API Java object deserialization error

I have a java object that is set as process variable, but it I get error when I try to deserialize it using REST API. Here is the error I get

“type”: “ProcessEngineException”,
“message”: "Cannot deserialize object in variable ‘ACTIVITY_TRACKER’: ENGINE-09017 Cannot load class.

the java class is as below. Both the parent and the dependent class implement
public class ActivityTracker implements {

   public static ArrayList<ActivityInfo> activityList = new ArrayList<ActivityInfo>();

	public void addActivityInfo(ActivityInfo activityInfo){
	public void removeActivityInfo(ActivityInfo activityInfo){


I have tried to follow the document to use specific serializer as well when setting the variable.

ObjectValue activityTrackerDataValue = Variables.objectValue(activityTracker)
	delegateExecution.setVariable("ACTIVITY_TRACKER", activityTrackerDataValue );

Hi @adat,

The REST API cannot load the classes that are located in your process application. It is recommended to serialize such objects as JSON (i.e. serialization data format application/json) and then only fetch the serialized value via REST API by adding the query parameter deserializeValues=false.


1 Like


I have the Java POJO object. How to mark that for Json serilalization in camunda?

Thanks @adat

When you set the variable, replace .serializationDataFormat(Variables.SerializationDataFormats.JAVA) by .serializationDataFormat(Variables.SerializationDataFormats.JSON).


To use it in REST API, set serializationDataFormat: "application/json" NOT serializationDataFormat: "JSON"

However, I’m still confused what to put in objectTypeName??? As the JSON object does not have a Java class definition.

UPDATE: Turns out this is very easy, just set e.g.

{"value": "{\"some\": \"JSON\"}", "type": "Json"}

Json is the magic undocumented type (as of 7.14).