Database Error: Column 'assignee' cannot be null

We are encountering an issue attempting to start a simple workflow that consists of a start event and a single user task. Note that the user task is unassigned.

We are running the Tomcat distribution, v7.16.0.

When attempting to start the workflow instance we get a database error that indicates:

Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.HistoricTaskInstanceEntity.insertHistoricTaskInstanceEvent (batch index #4) failed. 3 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: Column 'assignee' cannot be null

If we assign the user task to an assignee, then the problem no longer happens.
Also, this behavior has only recently started. Previously, running this workflow has not been a problem.

Is this expected behavior or does this seem to be a bug?

The complete error log is below:

22-Mar-2022 22:42:22.722 SEVERE [http-nio-8080-exec-63] org.camunda.commons.logging.BaseLogger.logError ENGINE-16004 Exception while closing command context: An exception occurred in the persistence layer. Please check the server logs for a detailed message and the entire exception stack trace.
	org.camunda.bpm.engine.ProcessEngineException: An exception occurred in the persistence layer. Please check the server logs for a detailed message and the entire exception stack trace.
		at org.camunda.bpm.engine.impl.util.ExceptionUtil.wrapPersistenceException(ExceptionUtil.java:263)
		at org.camunda.bpm.engine.impl.db.EnginePersistenceLogger.flushDbOperationException(EnginePersistenceLogger.java:132)
		at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flushDbOperations(DbEntityManager.java:364)
		at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flushDbOperationManager(DbEntityManager.java:323)
		at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flush(DbEntityManager.java:295)
		at org.camunda.bpm.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:272)
		at org.camunda.bpm.engine.impl.interceptor.CommandContext.close(CommandContext.java:188)
		at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:119)
		at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70)
		at org.camunda.bpm.engine.impl.interceptor.CommandCounterInterceptor.execute(CommandCounterInterceptor.java:35)
		at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
		at org.camunda.bpm.engine.impl.ProcessInstantiationBuilderImpl.executeWithVariablesInReturn(ProcessInstantiationBuilderImpl.java:166)
		at org.camunda.bpm.engine.rest.sub.repository.impl.ProcessDefinitionResourceImpl.startProcessInstanceAtActivities(ProcessDefinitionResourceImpl.java:178)
		at org.camunda.bpm.engine.rest.sub.repository.impl.ProcessDefinitionResourceImpl.startProcessInstance(ProcessDefinitionResourceImpl.java:128)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.base/java.lang.reflect.Method.invoke(Method.java:566)
		at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:138)
		at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:546)
		at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:435)
		at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:396)
		at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:358)
		at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:398)
		at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:365)
		at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:150)
		at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:110)
		at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:141)
		at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:104)
		at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:440)
		at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invokePropagateNotFound$6(SynchronousDispatcher.java:276)
		at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:135)
		at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:358)
		at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:138)
		at org.jboss.resteasy.core.SynchronousDispatcher.invokePropagateNotFound(SynchronousDispatcher.java:255)
		at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
		at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:66)
		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
		at org.camunda.bpm.engine.rest.filter.CacheControlFilter.doFilter(CacheControlFilter.java:45)
		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
		at org.camunda.bpm.engine.rest.filter.EmptyBodyFilter.doFilter(EmptyBodyFilter.java:99)
		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
		at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
		at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
		at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
		at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
		at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
		at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
		at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
		at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
		at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
		at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
		at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
		at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1726)
		at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
		at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
		at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
		at java.base/java.lang.Thread.run(Thread.java:834)
	Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-03004 Exception while executing Database Operation 'INSERT HistoricTaskInstanceEventEntity[55e59002-aa31-11ec-b8b8-0242ac180006]' with message '
### Error flushing statements.  Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.HistoricTaskInstanceEntity.insertHistoricTaskInstanceEvent (batch index #4) failed. 3 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: Column 'assignee' cannot be null
### Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.HistoricTaskInstanceEntity.insertHistoricTaskInstanceEvent (batch index #4) failed. 3 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: Column 'assignee' cannot be null
java.sql.BatchUpdateException: Column 'assignee' cannot be null
java.sql.SQLIntegrityConstraintViolationException: Column 'assignee' cannot be null
'. Flush summary: 
 [
  INSERT HistoricVariableInstanceEntity[55e568dd-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableInstanceEntity[55e568e0-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableInstanceEntity[55e568e2-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableInstanceEntity[55e568e4-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableInstanceEntity[55e568e6-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableInstanceEntity[55e568e8-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableInstanceEntity[55e568ea-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableInstanceEntity[55e568ec-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableInstanceEntity[55e58ffe-aa31-11ec-b8b8-0242ac180006]
  INSERT UserOperationLogEntryEventEntity[55e5b713-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e568df-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e568e1-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e568e3-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e568e5-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e568e7-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e568e9-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e568eb-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e58ffd-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricVariableUpdateEventEntity[55e58fff-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricTaskInstanceEventEntity[55e59002-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricProcessInstanceEventEntity[55e541cc-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricActivityInstanceEventEntity[StartEvent_1:55e59000-aa31-11ec-b8b8-0242ac180006]
  INSERT HistoricActivityInstanceEventEntity[UserTask_096t3ft:55e59001-aa31-11ec-b8b8-0242ac180006]
  INSERT ExecutionEntity[55e541cc-aa31-11ec-b8b8-0242ac180006]
  INSERT TaskEntity[55e59002-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e568dd-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e568e0-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e568e2-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e568e4-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e568e6-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e568e8-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e568ea-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e568ec-aa31-11ec-b8b8-0242ac180006]
  INSERT VariableInstanceEntity[55e58ffe-aa31-11ec-b8b8-0242ac180006]
]

@Stephen_Bucholtz could you provide the bpmn which can reproduce the issue? Are you using expressions for assignee?

thanks my issue has been fixed.

No, I’m not using expressions for the assignee. As I mentioned, there is no assignee. I have uploaded the bpmn.

startEventForm.bpmn (2.9 KB)