Problem
Below error comming on “Rapid-Setup Leaver workflow” in “Schedule Deferred Plan” step which is calling “Rule-Post-Leaver”:
An unexpected error occurred: No serializer registered for class class sailpoint.rapidsetup.plan.LeaverPlanBuilder
Diagnosis
Below is the error log:
2025-04-02T11:20:01,527 ERROR Workflow Event Thread 1 sailpoint.workflow.RapidSetupLibrary:690 - ...Rule Exception The application script threw an exception: sailpoint.tools.GeneralException: No serializer registered for class class sailpoint.rapidsetup.
plan.LeaverPlanBuilder BSF info: Rule-Post-Leaver at line: 0 column: columnNo
2025-04-02T11:20:01,542 ERROR Workflow Event Thread 1 sailpoint.server.ScriptletEvaluator:143 - Step call threw an exception:
2025-04-02T11:20:01,557 ERROR Workflow Event Thread 1 sailpoint.server.ScriptletEvaluator:144 - sailpoint.tools.GeneralException: Error During Rule Launch...Rule-Post-Leaver The application script threw an exception: sailpoint.tools.GeneralException:
No serializer registered for class class sailpoint.rapidsetup.plan.LeaverPlanBuilder BSF info: Rule-Post-Leaver at line: 0 column: columnNo
at sailpoint.workflow.RapidSetupLibrary.executePostRule(RapidSetupLibrary.java:691)
at sailpoint.workflow.RapidSetupLibrary.executePostLeaverRule(RapidSetupLibrary.java:597)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at sailpoint.server.ScriptletEvaluator.doCall(ScriptletEvaluator.java:134)
at sailpoint.server.ScriptletEvaluator.evalSource(ScriptletEvaluator.java:63)
at sailpoint.api.Workflower.evalSource(Workflower.java:5932)
at sailpoint.api.Workflower.advanceStep(Workflower.java:5171)
at sailpoint.api.Workflower.advance(Workflower.java:4558)
at sailpoint.api.Workflower.assimilate(Workflower.java:4208)
at sailpoint.api.Workflower.handleWorkItem(Workflower.java:7646)
at sailpoint.api.Workflower.processEvent(Workflower.java:1912)
at sailpoint.api.Workflower.processEvent(Workflower.java:1894)
at sailpoint.task.WorkflowerThread.process(WorkflowerThread.java:363)
at sailpoint.task.WorkflowerThread.run(WorkflowerThread.java:288)
2025-04-02T11:20:01,572 ERROR Workflow Event Thread 1 sailpoint.api.Workflower:4597 - An unexpected error occurred: Error During Rule Launch...Rule-Post-Leaver The application script threw an exception: sailpoint.tools.GeneralException: No serializer
registered for class class sailpoint.rapidsetup.plan.LeaverPlanBuilder BSF info: Rule-Post-Leaver at line: 0 column: columnNo
sailpoint.tools.GeneralException: Error During Rule Launch...Rule-Post-Leaver The application script threw an exception: sailpoint.tools.GeneralException: No serializer registered for class class sailpoint.rapidsetup.plan.LeaverPlanBuilder BSF info: R
ule-SP-Post-Leaver at line: 0 column: columnNo
at sailpoint.workflow.RapidSetupLibrary.executePostRule(RapidSetupLibrary.java:691) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.workflow.RapidSetupLibrary.executePostLeaverRule(RapidSetupLibrary.java:597) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
at sailpoint.server.ScriptletEvaluator.doCall(ScriptletEvaluator.java:134) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.server.ScriptletEvaluator.evalSource(ScriptletEvaluator.java:63) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.evalSource(Workflower.java:5932) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.advanceStep(Workflower.java:5171) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.advance(Workflower.java:4558) [identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.assimilate(Workflower.java:4208) [identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.handleWorkItem(Workflower.java:7646) [identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.processEvent(Workflower.java:1912) [identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.processEvent(Workflower.java:1894) [identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.task.WorkflowerThread.process(WorkflowerThread.java:363) [identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.task.WorkflowerThread.run(WorkflowerThread.java:288) [identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
2025-04-02T11:20:01,709 ERROR Workflow Event Thread 2 com.workflow.housekeep-enable:166 - nativeIdentity==>CN=Yap wei ting glande Yap,OU=BCC,DC=Vendor,DC=sg,DC=singtelgroup,DC=net
2025-04-02T11:20:01,717 ERROR Workflow Event Thread 2 com.workflow.housekeep-enable:166 - applicationName==>VENDOR Active Directory
2025-04-02T11:20:02,168 ERROR Workflow Event Thread 3 sailpoint.task.WorkflowerThread:293 - Error processing workitem: [0aad020d958e10778195943a30294d13, 3]
sailpoint.tools.GeneralException: Workflow case without task result
at sailpoint.api.Workflower.assimilate(Workflower.java:3992) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.handleWorkItem(Workflower.java:7646) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.processEvent(Workflower.java:1912) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.api.Workflower.processEvent(Workflower.java:1894) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.task.WorkflowerThread.process(WorkflowerThread.java:363) ~[identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
at sailpoint.task.WorkflowerThread.run(WorkflowerThread.java:288) [identityiq.jar:8.3p3 Build d5deab2519b-20230629-092050]
Solution
As per Sailpoint Support Case created, it looks to be an issue with the RapidSetup workflow IIQTC-622. and should add a transient variable “deferredLeaverPlanBuilder” in the workflow below declared variable “project”.
After further troubleshooting it looks like even after adding “deferredLeaverPlanBuilder” variable as “transient” in RapidSetup-Leaver workflow global variable issue did not solve, and after analysing the further by enabling below logs :
logger.LeaverPlanBuilder.name=sailpoint.rapidsetup.plan.LeaverPlanBuilder
logger.LeaverPlanBuilder.level=trace
logger.RapidSetupLibrary.name=sailpoint.workflow.RapidSetupLibrary
logger.RapidSetupLibrary.level=trace
logger.LeaverDeferredPlanExecutor.name=sailpoint.rapidsetup.plan.LeaverDeferredPlanExecutor
logger.LeaverDeferredPlanExecutor.level=trace
We realise that Something in the workflow seems to be trying to cause the WorkflowCase to be marked as dirty, which causes the commit of the Request object for the deferred plan to try and save the WorkflowCase with the deferredLeaverPlanBuilder still in it.
To Fix this, we set deferredLeaverPlanBuilder as null after it is no longer needed in “Extract Deferred Pam Plans” step, which has fixed the issue for me, Support is still analysing, if that a defect in rapidSetup or is due to customisation in our environment.
below is the code implemented to fix, where the variable is set to null:
<Arg name="deferredPlans" value="ref:deferredPlans"/>
<script>
<Source>
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Log custom_logger = LogFactory.getLog( "com.workflow.RapidSetupLeaver" );
deferredPamPlans = deferredLeaverPlanBuilder.extractDeferredPamPlans(deferredPlans);
custom_logger.debug("deferredPamPlans: "+deferredPamPlans);
//custom_logger.debug("deferredPamPlans: "+deferredPamPlans.getClass());
//Add this line:
wfcontext.setVariable("deferredLeaverPlanBuilder", null);
//
return deferredPamPlans;
</Source>
</script>
<Transition to="Schedule Deferred Pam Plan"/>
</Step>```