ErrorBoundaryEvent for http task showing completed though not executed

Hi,
I am using http task in my process and incase error occurs, process raises BPMNError by specifying response code in handleStatusCode field. To handle error, errorboundary event has been attached to the task.
Now even if the error has not been throw(Response code is 2XX), historic activity instance API is returning error boundary event as completed.
I was expecting only the httptask would show as completed not the errorboundaryevent which was not executed in response to historic activity instance API(GET-/history/historic-activity-instances?processInstanceId=<pi_instance_id>&start=0&size=50)

Please confirm if this is expected and if I can change this behaviour.

Thanks,
Prasanta

Do you have a BPMN model so we can check how you’re configuring this? Or even better, a unit test?

Hi @joram ,

Attaching process xml here.

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpmndc="http://www.omg.org/spec/BPMN/20100524/DC" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="s">
	<process id="SampleApp-SampleProcess-s" name="SampleProcess" isExecutable="true">
		<extensionElements>
			<flowable:historyLevel xmlns:flowable="http://flowable.org/bpmn">
				<![CDATA[full]]>
			</flowable:historyLevel>
		</extensionElements>
		<endEvent id="EndEvent_1eq0bqk" name="End"/>
		<startEvent id="StartEvent_37c3f7" name="Start"/>
		<serviceTask id="HttpTask_uyxqja" name="Create Session" flowable:type="http" flowable:parallelInSameTransaction="false">
			<extensionElements>
				<flowable:field name="requestUrl">
					<flowable:string>
						<![CDATA[https://google.com]]>
					</flowable:string>
				</flowable:field>
				<flowable:field name="requestMethod">
					<flowable:string>
						<![CDATA[GET]]>
					</flowable:string>
				</flowable:field>
				<flowable:field name="saveRequestVariables">
					<flowable:string>
						<![CDATA[true]]>
					</flowable:string>
				</flowable:field>
				<flowable:field name="saveResponseParameters">
					<flowable:string>
						<![CDATA[true]]>
					</flowable:string>
				</flowable:field>
			</extensionElements>
		</serviceTask>
		<boundaryEvent id="BoundaryEvent_b93kb5" name="error boundary" attachedToRef="HttpTask_uyxqja">
			<errorEventDefinition flowable:errorVariableName="errorVar" flowable:errorVariableLocalScope="false" flowable:errorVariableTransient="false"/>
		</boundaryEvent>
		<sequenceFlow id="SequenceFlow_se0pdq" name="" sourceRef="StartEvent_37c3f7" targetRef="HttpTask_uyxqja"/>
		<sequenceFlow id="SequenceFlow_17czlbl" name="" sourceRef="HttpTask_uyxqja" targetRef="EndEvent_1eq0bqk"/>
		<sequenceFlow id="SequenceFlow_19lh59" name="" sourceRef="BoundaryEvent_b93kb5" targetRef="EndEvent_1eq0bqk"/>
	</process>
</definitions>

Also response of historic activity instances

{
    "data": [
        {
            "id": "6deb0a9d-ea40-11ed-bd59-9c2dcd7f8b9e",
            "activityId": "StartEvent_37c3f7",
            "activityName": "Start",
            "activityType": "startEvent",
            "processDefinitionId": "SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processDefinitionUrl": "http://localhost:8522/process/rest/repository/process-definitions/SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceId": "6dea474a-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceUrl": "http://localhost:8522/process/rest/history/historic-process-instances/6deb0a9d-ea40-11ed-bd59-9c2dcd7f8b9e",
            "executionId": "6deb0a9c-ea40-11ed-bd59-9c2dcd7f8b9e",
            "taskId": null,
            "calledProcessInstanceId": null,
            "assignee": null,
            "startTime": "2023-05-04T11:26:36.128+05:30",
            "endTime": "2023-05-04T11:26:36.135+05:30",
            "durationInMillis": 7,
            "tenantId": ""
        },
        {
            "id": "6decb84f-ea40-11ed-bd59-9c2dcd7f8b9e",
            "activityId": "HttpTask_uyxqja",
            "activityName": "Create Session",
            "activityType": "httpServiceTask",
            "processDefinitionId": "SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processDefinitionUrl": "http://localhost:8522/process/rest/repository/process-definitions/SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceId": "6dea474a-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceUrl": "http://localhost:8522/process/rest/history/historic-process-instances/6decb84f-ea40-11ed-bd59-9c2dcd7f8b9e",
            "executionId": "6deb0a9c-ea40-11ed-bd59-9c2dcd7f8b9e",
            "taskId": null,
            "calledProcessInstanceId": null,
            "assignee": null,
            "startTime": "2023-05-04T11:26:36.139+05:30",
            "endTime": "2023-05-04T11:26:37.923+05:30",
            "durationInMillis": 1784,
            "tenantId": ""
        },
        {
            "id": "6decb84e-ea40-11ed-bd59-9c2dcd7f8b9e",
            "activityId": "SequenceFlow_se0pdq",
            "activityName": "",
            "activityType": "sequenceFlow",
            "processDefinitionId": "SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processDefinitionUrl": "http://localhost:8522/process/rest/repository/process-definitions/SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceId": "6dea474a-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceUrl": "http://localhost:8522/process/rest/history/historic-process-instances/6decb84e-ea40-11ed-bd59-9c2dcd7f8b9e",
            "executionId": "6deb0a9c-ea40-11ed-bd59-9c2dcd7f8b9e",
            "taskId": null,
            "calledProcessInstanceId": null,
            "assignee": null,
            "startTime": "2023-05-04T11:26:36.139+05:30",
            "endTime": "2023-05-04T11:26:36.139+05:30",
            "durationInMillis": 0,
            "tenantId": ""
        },
        {
            "id": "6decdf61-ea40-11ed-bd59-9c2dcd7f8b9e",
            "activityId": "BoundaryEvent_b93kb5",
            "activityName": "error boundary",
            "activityType": "boundaryEvent",
            "processDefinitionId": "SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processDefinitionUrl": "http://localhost:8522/process/rest/repository/process-definitions/SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceId": "6dea474a-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceUrl": "http://localhost:8522/process/rest/history/historic-process-instances/6decdf61-ea40-11ed-bd59-9c2dcd7f8b9e",
            "executionId": "6decdf60-ea40-11ed-bd59-9c2dcd7f8b9e",
            "taskId": null,
            "calledProcessInstanceId": null,
            "assignee": null,
            "startTime": "2023-05-04T11:26:36.140+05:30",
            "endTime": "2023-05-04T11:26:37.923+05:30",
            "durationInMillis": 1783,
            "tenantId": ""
        },
        {
            "id": "6efceff7-ea40-11ed-bd59-9c2dcd7f8b9e",
            "activityId": "SequenceFlow_17czlbl",
            "activityName": "",
            "activityType": "sequenceFlow",
            "processDefinitionId": "SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processDefinitionUrl": "http://localhost:8522/process/rest/repository/process-definitions/SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceId": "6dea474a-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceUrl": "http://localhost:8522/process/rest/history/historic-process-instances/6efceff7-ea40-11ed-bd59-9c2dcd7f8b9e",
            "executionId": "6deb0a9c-ea40-11ed-bd59-9c2dcd7f8b9e",
            "taskId": null,
            "calledProcessInstanceId": null,
            "assignee": null,
            "startTime": "2023-05-04T11:26:37.923+05:30",
            "endTime": "2023-05-04T11:26:37.923+05:30",
            "durationInMillis": 0,
            "tenantId": ""
        },
        {
            "id": "6efceff8-ea40-11ed-bd59-9c2dcd7f8b9e",
            "activityId": "EndEvent_1eq0bqk",
            "activityName": "End",
            "activityType": "endEvent",
            "processDefinitionId": "SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processDefinitionUrl": "http://localhost:8522/process/rest/repository/process-definitions/SampleApp-SampleProcess-s:8:627b2f59-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceId": "6dea474a-ea40-11ed-bd59-9c2dcd7f8b9e",
            "processInstanceUrl": "http://localhost:8522/process/rest/history/historic-process-instances/6efceff8-ea40-11ed-bd59-9c2dcd7f8b9e",
            "executionId": "6deb0a9c-ea40-11ed-bd59-9c2dcd7f8b9e",
            "taskId": null,
            "calledProcessInstanceId": null,
            "assignee": null,
            "startTime": "2023-05-04T11:26:37.924+05:30",
            "endTime": "2023-05-04T11:26:37.925+05:30",
            "durationInMillis": 1,
            "tenantId": ""
        }
    ],
    "total": 6,
    "start": 0,
    "sort": "startTime",
    "order": "asc",
    "size": 6
}

My understanding was why boundaryEvent is saved in act_hi_actinst table as no error was thrown.
How can we avoid this boundaryEvent incase normal execution.

Hi @joram , could you get a chance to look into my request. I understand this is existing behavior(completing boundary event when attached activity completes even though it does not execute).
Is there a way to change this behavior or stop saving non executing error boundary event details in act_hi_actinst table.