Null pointer exception when completing task after upgrade from activiti 5 to flowable 6

Hello,
I upgrade from actviti to flowable. when i try to complete a task created before the upgrade (activiti task), i have this error :

Caused by: java.lang.NullPointerException: null
    at org.flowable.common.engine.impl.el.VariableContainerELResolver.getValue(VariableContainerELResolver.java:42)
    at org.flowable.common.engine.impl.javax.el.CompositeELResolver.getValue(CompositeELResolver.java:243)
    at org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstIdentifier.eval(AstIdentifier.java:95)
    at org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstEval.eval(AstEval.java:53)
    at org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstNode.getValue(AstNode.java:31)
    at org.flowable.common.engine.impl.de.odysseus.el.TreeValueExpression.getValue(TreeValueExpression.java:122)
    at org.activiti.engine.impl.delegate.ExpressionGetInvocation.invoke(ExpressionGetInvocation.java:34)
    at org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:35)
    at org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:26)
    at org.activiti.engine.impl.el.JuelExpression.getValue(JuelExpression.java:52)
    at org.activiti.engine.impl.bpmn.listener.DelegateExpressionTaskListener.notify(DelegateExpressionTaskListener.java:44)
    at org.activiti.engine.impl.delegate.TaskListenerInvocation.invoke(TaskListenerInvocation.java:35)
    at org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:35)
    at org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:26)
    at org.activiti.engine.impl.persistence.entity.TaskEntity.fireEvent(TaskEntity.java:775)
    at org.activiti.engine.impl.persistence.entity.TaskEntity.complete(TaskEntity.java:193)
    at org.activiti.engine.impl.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:65)
    at org.activiti.engine.impl.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:23)
    at org.activiti.engine.impl.cmd.NeedsActiveTaskCmd.execute(NeedsActiveTaskCmd.java:59)
    at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24)
    at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:59)
    at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
    at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)
    at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:46)
    at org.activiti.engine.impl.TaskServiceImpl.complete(TaskServiceImpl.java:213)
    at org.flowable.compatibility.DefaultFlowable5CompatibilityHandler.completeTask(DefaultFlowable5CompatibilityHandler.java:591)
    ... 194 common frames omitted

Do you have any idea on why we have this error ?

Regards,
Krimo

when i debug, i can see that variablecontainer is null, so variablecontainer.hasvariable(…) throw an NPE. When the method getvariablecontainer is executed, the context attribute of ELcontext is also null, so it returns null.

I had a similar issue, the error happens because your task was created in Activiti 5, so it doesn’t have the fully set-up variable container that Flowable 6 expects when evaluating expressions, which leads to the NullPointerException

Thanks @Pavelevich. Yes, that’s what we understood, but normally with the compatibility mode, flowable 6 should evaluate the variables created on activiti5. if it’s not the case, i’m worndering what is the purpose of the compatibility mode.
What was your solution ? cancel and recreate your workflows ?

This looks like a bug @krimo. Which version are you using?

Hello @filiphr,
We have migrated from activiti 5.15 to flowable 6.8.
Regards,

@filiphr do you have any update please ?