Decision Management & Intelligence (ODM, DI)

 View Only

 Migration from 8.9 to 9.5

Jump to  Best Answer
Mayuri Wagh's profile image
Mayuri Wagh posted 06/18/26 01:05 AM

We are migrating from IBM ODM 8.9 to 9.5. After changing the java dependencies to Java 21 I am facing the below error while deployments. 
The parameters throwing error are well defined in the variable set and were working fine  previously. they are being used as input parameters for different decision operations. 

An error occurred during the export of the ruleset archive.

GBRED0040E: The ruleset variable 'partTimeRequest' is read but never written

how can this be fixed?

Alain Robert's profile image
Alain Robert  Best Answer

This is a new feature we added to detect and prevent null pointer exception. the engine compiler is  inspecting the rules to see when a variable is used but not initialized which is going to generate issue at runtime.

All those variables need to be assigned a default value if none is assigned later.

We do recommend addressing the root of the issue, however there is a system property that you can set in Rule Designer and Decision Center JVM to prevent the check: -Dcom.ibm.rules.engine.variablesetinspector=false 

https://www.ibm.com/docs/en/odm/9.5.0?topic=designer-ruleset-archive-errors

Are those variables declared as input parameters in an operation?  In that case the error should not be thrown as the engine expects those variables to be initialized at runtime. I would be interested in looking into a sample reproducing those errors.

Mayuri Wagh's profile image
Mayuri Wagh

@Alain Robert - Thank you for your suggestion. It fixed the issue I was facing in Rule designer but the issue still persist in Decision Center. 
Yes, these are individually declared as input parameters in different Decision operations. the initialization is not done as we need to use them as input parameters still this error was thrown. 

No I am facing the same issue in decision  center. While trying to deploy from decision center I am getting the below errors - 
There were errors during build: GBRED0040E: The ruleset variable 'partTimeRequest' is read but never written
GBRED0040E: The ruleset variable 'feeRequest' is read but never written
GBRED0040E: The ruleset variable 'cpdMaximumLimitRequest' is read but never written
GBRED0040E: The ruleset variable 'serviceFineThresholdRequest' is read but never written
GBRED0040E: The ruleset variable 'upgradePositionRequest' is read but never written

How can this be fixed in Decision center? 

Alain Robert's profile image
Alain Robert

Same fix applies in Decision Center apply the JVM property on the JVM running the server hosting the Decision Center application.