I am experiencing an issue where an Error Catcher stops processing after the first task. The main flow triggers the Error Catcher due to a Data Mapping/Transformation error (attempting to parse an empty array string [] into a non-conforming JSON schema).
While the Error Catcher successfully initiates, it only executes the initial task within the error-handling flow and terminates immediately after, leaving subsequent tasks unexecuted. There are no edge conditions preventing the flow.
Error Step 1 Task didnt raise any error by itself and so the next task must have been executed. However I see the error coming from the main integration flow prevents it from executing. This design (or probably a bug) defeats the purpose of catching an error and do some post processing on it inside Error Catcher steps (for example, logging error details to a db).
The task step which raises the error -
As seen, only the first step under error catcher got executed and not afterwards.
Pasting the application integration code below -
{
“name”: (PII Removed by Staff)
“updateTime”: “2026-02-25T04:29:00.487Z”,
“createTime”: “2026-02-25T04:28:53.709Z”,
“lastModifierEmail”: “abc@xyz-works.com”,
“triggerConfigs”: [{
“label”: “API Trigger”,
“startTasks”: [{
“taskId”: “26”
}],
“properties”: {
“Trigger name”: “Test-Catch-Block-Duplicate”,
“Scheduled Time spec”: “2 21 * * *”
},
“triggerType”: “API”,
“triggerNumber”: “1”,
“triggerId”: “api_trigger/Test-Catch-Block-Duplicate”,
“position”: {
“x”: 140,
“y”: 45
},
“errorCatcherId”: “ErrorCatcher_2”,
“inputVariables”: {
},
“outputVariables”: {
}
}],
“taskConfigs”: [{
“task”: “JavaScriptTask”,
“taskId”: “24”,
“parameters”: {
“javaScriptEngine”: {
“key”: “javaScriptEngine”,
“value”: {
“stringValue”: “V8”
}
},
“script”: {
“key”: “script”,
“value”: {
“stringValue”: “\n/\n * Function that is called during the JavaScript Task execution.\n * @paramparam {IntegrationEvent} event\n */\nfunction executeScript(event) {\n}"
}
}
},
“nextTasks”: [{
“taskId”: “25”
}],
“taskExecutionStrategy”: “WHEN_ALL_SUCCEED”,
“displayName”: “Error Step 1 (Do Nothing)”,
“externalTaskType”: “ERROR_TASK”,
“position”: {
“x”: 620,
“y”: 181
}
}, {
“task”: “JavaScriptTask”,
“taskId”: “25”,
“parameters”: {
“javaScriptEngine”: {
“key”: “javaScriptEngine”,
“value”: {
“stringValue”: “V8”
}
},
“script”: {
“key”: “script”,
“value”: {
“stringValue”: "\n/\n * Function that is called during the JavaScript Task execution.@paramn * @param {IntegrationEvent} event\n */\nfunction executeScript(event) {\n}”
}
}
},
“taskExecutionStrategy”: “WHEN_ALL_SUCCEED”,
“displayName”: “Error Step 2 (Do Nothing)”,
“externalTaskType”: “ERROR_TASK”,
“position”: {
“x”: 620,
“y”: 317
}
}, {
“task”: “JavaScriptTask”,
“taskId”: “26”,
“parameters”: {
“javaScriptEngine”: {
“key”: “javaScriptEngine”,
“value”: {
“stringValue”: “V8”
}
},
“script”: {
“key”: “script”,
“value”: {
“stringValue”: “\n/**\n * Function that is called during the JavaScript Task execu@paramion.\n * @param {IntegrationEvent} event\n */\nfunction executeScript(event) {\n}”
}
}
},
“nextTasks”: [{
“taskId”: “27”
}],
“taskExecutionStrategy”: “WHEN_ANY_SUCCEED”,
“displayName”: “Step 1 - Do Nothing”,
“externalTaskType”: “NORMAL_TASK”,
“position”: {
“x”: 140,
“y”: 181
}
}, {
“task”: “FieldMappingTask”,
“taskId”: “27”,
“parameters”: {
“FieldMappingConfigTaskParameterKey”: {
“key”: “FieldMappingConfigTaskParameterKey”,
“value”: {
“json@typealue”: “{\n “@type”: “type.googleapis.com/enterprise.crm.eventbus.proto.FieldMappingConfig”,\n “mappedFields”: [{\n “inputField”: {\n “fieldType”: “JSON_VALUE”,\n “transformExpression”: {\n “initialValue”: {\n “literalValue”: {\n “stringValue”: “”\n }\n },\n “transformationFunctions”: [{\n “functionType”: {\n “stringFunction”: {\n “functionName”: “TO_JSON”\n }\n }\n }]\n }\n },\n “outputField”: {\n “referenceKey”: “$someJSON$”,\n “fieldType”: “JSON_VALUE”,\n “cardinality”: “OPTIONAL”\n }\n }]\n}”
}
}
},
“taskExecutionStrategy”: “WHEN_ALL_SUCCEED”,
“displayName”: “Step 2 - Convert Empty Array String (Raise Error)”,
“externalTaskType”: “NORMAL_TASK”,
“position”: {
“x”: 140,
“y”: 317
}
}],
“integrationParameters”: [{
“key”: “ExecutionMode”,
“dataType”: “STRING_VALUE”,
“defaultValue”: {
“stringValue”: “”
},
“displayName”: “ExecutionMode”,
“isTransient”: true
}, {
“key”: “ErrorInfo”,
“dataType”: “JSON_VALUE”,
“defaultValue”: {
“jsonValue”: “{\n “message”: “”,\n “code”: 0.0\n}”
},
“displayName”: “ErrorInfo”,
“isTransient”: true,
“jsonSchema”: “{\n “type”: “object”,\n “properties”: {\n “code”: {\n “type”: “number”\n },\n “message”: {\n “type”: “string”\n }\n }\n}”
}, {
“key”: “ExecutionId”,
“dataType”: “STRING_VALUE”,
“defaultValue”: {
“stringValue”: “”
},
“displayName”: “ExecutionId”,
“isTransient”: true
}, {
“key”: “IntegrationName”,
“dataType”: “STRING_VALUE”,
“defaultValue”: {
“stringValue”: “”
},
“displayName”: “IntegrationName”,
“isTransient”: true
}, {
“key”: “Region”,
“dataType”: “STRING_VALUE”,
“defaultValue”: {
“stringValue”: “”
},
“displayName”: “Region”,
“isTransient”: true
}, {
“key”: “ProjectId”,
“dataType”: “STRING_VALUE”,
“defaultValue”: {
“stringValue”: “”
},
“displayName”: “ProjectId”,
“isTransient”: true
}, {
“key”: “someJSON”,
“dataType”: “JSON_VALUE”,
“displayName”: “someJSON”,
“jsonSchema”: “{\n “type”: “object”,\n “properties”: {\n “var1”: {\n “type”: “string”\n },\n “var2”: {\n “type”: “string”\n }\n }\n}”
}],
“databasePersistencePolicy”: “DATABASE_PERSISTENCE_ASYNC”,
“errorCatcherConfigs”: [{
“label”: “ErrorCatcher”,
“errorCatcherNumber”: “2”,
“startErrorTasks”: [{
“taskId”: “24”
}],
“position”: {
“x”: 620,
“y”: 45
},
“errorCatcherId”: “ErrorCatcher_2”
}]
}
Thank you.


