An error was reported: java.lang.IllegalArgumentException: type must not be empty
The stacktrace shows that this concerns the creation of a job without a type:
While it should not be allowed, this shouldn't lead to an error. If this occurs during the execution of a process instance, it can lead to a banned process instance. For example, a trigging timer activates the task without a job type.
To Reproduce
deploy a process with a service task with a job type expression = type
create a process instance with variable type = " "
notice the logged error and failure to create the process instance
Expected behavior
The problem can occur on any job worker task (service task, user task, etc). An incident should be created at the task during activation if the type expression evaluates to a blank string.
Log/Stacktrace
Full Stacktrace
```
java.lang.IllegalArgumentException: type must not be empty
at io.camunda.zeebe.util.EnsureUtil.ensureNotNullOrEmpty(EnsureUtil.java:75) ~[zeebe-util-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.state.instance.DbJobState.makeJobActivatable(DbJobState.java:504) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.state.instance.DbJobState.createJob(DbJobState.java:316) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.state.instance.DbJobState.create(DbJobState.java:116) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.state.appliers.JobCreatedApplier.applyState(JobCreatedApplier.java:30) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.state.appliers.JobCreatedApplier.applyState(JobCreatedApplier.java:18) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.state.appliers.EventAppliers.applyState(EventAppliers.java:440) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.streamprocessor.writers.ResultBuilderBackedEventApplyingStateWriter.appendFollowUpEvent(ResultBuilderBackedEventApplyingStateWriter.java:56) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.streamprocessor.writers.ResultBuilderBackedEventApplyingStateWriter.appendFollowUpEvent(ResultBuilderBackedEventApplyingStateWriter.java:42) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.behavior.BpmnJobBehavior.writeJobCreatedEvent(BpmnJobBehavior.java:185) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.behavior.BpmnJobBehavior.createNewJob(BpmnJobBehavior.java:135) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.task.JobWorkerTaskProcessor.lambda$finalizeActivation$2(JobWorkerTaskProcessor.java:68) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.util.Either$Right.thenDo(Either.java:422) ~[zeebe-util-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.task.JobWorkerTaskProcessor.finalizeActivation(JobWorkerTaskProcessor.java:66) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.task.JobWorkerTaskProcessor.finalizeActivation(JobWorkerTaskProcessor.java:28) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.processElementWithListeners(BpmnStreamProcessor.java:236) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.afterActivating(BpmnStreamProcessor.java:204) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.lambda$processEvent$3(BpmnStreamProcessor.java:162) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.util.Either$Right.flatMap(Either.java:417) ~[zeebe-util-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.processEvent(BpmnStreamProcessor.java:162) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.lambda$processRecord$0(BpmnStreamProcessor.java:110) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.util.Either$Right.ifRightOrLeft(Either.java:438) ~[zeebe-util-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.processRecord(BpmnStreamProcessor.java:107) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.engine.Engine.process(Engine.java:127) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.batchProcessing(ProcessingStateMachine.java:369) ~[zeebe-stream-platform-8.5.0.jar:8.5.0]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.lambda$processCommand$3(ProcessingStateMachine.java:282) ~[zeebe-stream-platform-8.5.0.jar:8.5.0]
at io.camunda.zeebe.db.impl.rocksdb.transaction.ZeebeTransaction.run(ZeebeTransaction.java:116) ~[zeebe-db-8.5.0.jar:8.5.0]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.processCommand(ProcessingStateMachine.java:282) ~[zeebe-stream-platform-8.5.0.jar:8.5.0]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.tryToReadNextRecord(ProcessingStateMachine.java:240) ~[zeebe-stream-platform-8.5.0.jar:8.5.0]
at io.camunda.zeebe.scheduler.ActorJob.invoke(ActorJob.java:94) [zeebe-scheduler-8.5.0.jar:8.5.0]
at io.camunda.zeebe.scheduler.ActorJob.execute(ActorJob.java:47) [zeebe-scheduler-8.5.0.jar:8.5.0]
at io.camunda.zeebe.scheduler.ActorTask.execute(ActorTask.java:122) [zeebe-scheduler-8.5.0.jar:8.5.0]
at io.camunda.zeebe.scheduler.ActorThread.executeCurrentTask(ActorThread.java:130) [zeebe-scheduler-8.5.0.jar:8.5.0]
at io.camunda.zeebe.scheduler.ActorThread.doWork(ActorThread.java:108) [zeebe-scheduler-8.5.0.jar:8.5.0]
at io.camunda.zeebe.scheduler.ActorThread.run(ActorThread.java:227) [zeebe-scheduler-8.5.0.jar:8.5.0]
```
Describe the bug
An error was reported:
java.lang.IllegalArgumentException: type must not be empty
The stacktrace shows that this concerns the creation of a job without a type:
While it should not be allowed, this shouldn't lead to an error. If this occurs during the execution of a process instance, it can lead to a banned process instance. For example, a trigging timer activates the task without a job type.
To Reproduce
= type
type = " "
Expected behavior
The problem can occur on any job worker task (service task, user task, etc). An incident should be created at the task during activation if the type expression evaluates to a blank string.
Log/Stacktrace
Full Stacktrace
``` java.lang.IllegalArgumentException: type must not be empty at io.camunda.zeebe.util.EnsureUtil.ensureNotNullOrEmpty(EnsureUtil.java:75) ~[zeebe-util-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.state.instance.DbJobState.makeJobActivatable(DbJobState.java:504) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.state.instance.DbJobState.createJob(DbJobState.java:316) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.state.instance.DbJobState.create(DbJobState.java:116) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.state.appliers.JobCreatedApplier.applyState(JobCreatedApplier.java:30) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.state.appliers.JobCreatedApplier.applyState(JobCreatedApplier.java:18) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.state.appliers.EventAppliers.applyState(EventAppliers.java:440) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.streamprocessor.writers.ResultBuilderBackedEventApplyingStateWriter.appendFollowUpEvent(ResultBuilderBackedEventApplyingStateWriter.java:56) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.streamprocessor.writers.ResultBuilderBackedEventApplyingStateWriter.appendFollowUpEvent(ResultBuilderBackedEventApplyingStateWriter.java:42) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.behavior.BpmnJobBehavior.writeJobCreatedEvent(BpmnJobBehavior.java:185) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.behavior.BpmnJobBehavior.createNewJob(BpmnJobBehavior.java:135) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.task.JobWorkerTaskProcessor.lambda$finalizeActivation$2(JobWorkerTaskProcessor.java:68) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.util.Either$Right.thenDo(Either.java:422) ~[zeebe-util-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.task.JobWorkerTaskProcessor.finalizeActivation(JobWorkerTaskProcessor.java:66) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.task.JobWorkerTaskProcessor.finalizeActivation(JobWorkerTaskProcessor.java:28) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.processElementWithListeners(BpmnStreamProcessor.java:236) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.afterActivating(BpmnStreamProcessor.java:204) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.lambda$processEvent$3(BpmnStreamProcessor.java:162) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.util.Either$Right.flatMap(Either.java:417) ~[zeebe-util-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.processEvent(BpmnStreamProcessor.java:162) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.lambda$processRecord$0(BpmnStreamProcessor.java:110) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.util.Either$Right.ifRightOrLeft(Either.java:438) ~[zeebe-util-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.processing.bpmn.BpmnStreamProcessor.processRecord(BpmnStreamProcessor.java:107) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.engine.Engine.process(Engine.java:127) ~[zeebe-workflow-engine-8.5.0.jar:8.5.0] at io.camunda.zeebe.stream.impl.ProcessingStateMachine.batchProcessing(ProcessingStateMachine.java:369) ~[zeebe-stream-platform-8.5.0.jar:8.5.0] at io.camunda.zeebe.stream.impl.ProcessingStateMachine.lambda$processCommand$3(ProcessingStateMachine.java:282) ~[zeebe-stream-platform-8.5.0.jar:8.5.0] at io.camunda.zeebe.db.impl.rocksdb.transaction.ZeebeTransaction.run(ZeebeTransaction.java:116) ~[zeebe-db-8.5.0.jar:8.5.0] at io.camunda.zeebe.stream.impl.ProcessingStateMachine.processCommand(ProcessingStateMachine.java:282) ~[zeebe-stream-platform-8.5.0.jar:8.5.0] at io.camunda.zeebe.stream.impl.ProcessingStateMachine.tryToReadNextRecord(ProcessingStateMachine.java:240) ~[zeebe-stream-platform-8.5.0.jar:8.5.0] at io.camunda.zeebe.scheduler.ActorJob.invoke(ActorJob.java:94) [zeebe-scheduler-8.5.0.jar:8.5.0] at io.camunda.zeebe.scheduler.ActorJob.execute(ActorJob.java:47) [zeebe-scheduler-8.5.0.jar:8.5.0] at io.camunda.zeebe.scheduler.ActorTask.execute(ActorTask.java:122) [zeebe-scheduler-8.5.0.jar:8.5.0] at io.camunda.zeebe.scheduler.ActorThread.executeCurrentTask(ActorThread.java:130) [zeebe-scheduler-8.5.0.jar:8.5.0] at io.camunda.zeebe.scheduler.ActorThread.doWork(ActorThread.java:108) [zeebe-scheduler-8.5.0.jar:8.5.0] at io.camunda.zeebe.scheduler.ActorThread.run(ActorThread.java:227) [zeebe-scheduler-8.5.0.jar:8.5.0] ```