Flowable upgrade 6.5.0, failed to start server

Hi ,
We are upgrading flowable 6.2.1 to 6.5.0 , executed all upgrade DB (Oracle) script in sequence however it failed to start.

Exception :

    java.lang.NullPointerException: null
        at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106) ~[?:1.8.0_202]
        at org.flowable.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.createBpmnParseFromResource(ParsedDeploymentBuilder.java:70) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.build(ParsedDeploymentBuilder.java:55) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:78) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:62) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.persistence.deploy.DeploymentManager.resolveProcessDefinition(DeploymentManager.java:130) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.persistence.deploy.DeploymentManager.findDeployedProcessDefinitionById(DeploymentManager.java:80) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.ProcessDefinitionUtil.getProcessDefinition(ProcessDefinitionUtil.java:50) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.ProcessDefinitionUtil.getProcessDefinition(ProcessDefinitionUtil.java:36) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util.isFlowable5ProcessDefinitionId(Flowable5Util.java:63) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util$2.execute(Flowable5Util.java:93) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util$2.execute(Flowable5Util.java:89) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:51) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:93) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:72) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:56) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:25) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53) ~[flowable-engine-common-6.5.0.jar:6.5.0]
        at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:72) ~[flowable-engine-common-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.persistence.deploy.DeploymentManager.resolveProcessDefinition(DeploymentManager.java:130) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.persistence.deploy.DeploymentManager.findDeployedProcessDefinitionById(DeploymentManager.java:80) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.ProcessDefinitionUtil.getProcessDefinition(ProcessDefinitionUtil.java:50) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.ProcessDefinitionUtil.getProcessDefinition(ProcessDefinitionUtil.java:36) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util.isFlowable5ProcessDefinitionId(Flowable5Util.java:63) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util$2.execute(Flowable5Util.java:93) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util$2.execute(Flowable5Util.java:89) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:51) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:93) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:72) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:56) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:25) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53) ~[flowable-engine-common-6.5.0.jar:6.5.0]
        at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:72) ~[flowable-engine-common-6.5.0.jar:6.5.0]
        at org.flowable.common.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:56) ~[flowable-spring-common-6.5.0.jar:6.5.0]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:56) [flowable-spring-common-6.5.0.jar:6.5.0]
        at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30) [flowable-engine-common-6.5.0.jar:6.5.0]
        at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56) [flowable-engine-common-6.5.0.jar:6.5.0]
        at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51) [flowable-engine-common-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util.isFlowable5ProcessDefinitionId(Flowable5Util.java:89) [flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.cfg.DefaultInternalJobCompatibilityManager.isFlowable5Job(DefaultInternalJobCompatibilityManager.java:40) [flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.job.service.impl.asyncexecutor.ExecuteAsyncRunnable.run(ExecuteAsyncRunnable.java:102) [flowable-job-service-6.5.0.jar:6.5.0]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_202]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_202]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]

2020-08-11 17:34:15.832 ERROR 79356 --- [task-Executor-1] o.f.c.e.i.i.CommandContext               : Error while closing command context

java.lang.NullPointerException: null
        at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106) ~[?:1.8.0_202]
        at org.flowable.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.createBpmnParseFromResource(ParsedDeploymentBuilder.java:70) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.build(ParsedDeploymentBuilder.java:55) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:78) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:62) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.persistence.deploy.DeploymentManager.resolveProcessDefinition(DeploymentManager.java:130) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.persistence.deploy.DeploymentManager.findDeployedProcessDefinitionById(DeploymentManager.java:80) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.ProcessDefinitionUtil.getProcessDefinition(ProcessDefinitionUtil.java:50) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.ProcessDefinitionUtil.getProcessDefinition(ProcessDefinitionUtil.java:36) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util.isFlowable5ProcessDefinitionId(Flowable5Util.java:63) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util$2.execute(Flowable5Util.java:93) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.util.Flowable5Util$2.execute(Flowable5Util.java:89) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:51) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:93) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:72) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:56) ~[flowable-engine-6.5.0.jar:6.5.0]
        at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:25) ~[flowable-engine-6.5.0.jar:6.5.0]

Thanks in advance.

Hey @Tabrez,

That’s really weird. This shouldn’t be linked to the DB changes.

Can you please enable DEBUG level logging for org.flowable and send us the log just before the exception?

There should be an entry saying:

Processing BPMN resource <resource>

in <resource> the name of the BPMN that causes this will be shown.

The reason for the exception is that the bytes for some particular process definition have been deleted.

Cheers,
Filip