I don't see a sub-process with a catching error-event around the gateway, service-tasks and usertask. Keep in mind that service-tasks, by default, are executed in the current thread. So the user-task won't be available to the outside (by using the taskService) infill both parallel paths are finished or have reached a wait-state. So this process will run the service-task, and the task will be available AFTER that. Because there is no catching error-event, the execution will be ended (none-end event-semantics). However, because the sub-execution is ended by the end-event, it never reaches the parallel join, making your process stuck on the join-gateway.