Please share any images or screenshots, if relevant.
An unexpected error occurred:failed to lazily initialize a collection of role: sailpoint.object.Identity.bundles, could not initialize proxy - no Session
Please share any other relevant files that may be required (for example, logs).
This is part of ITSM → SailPoint Integration flow where we have run rule task configured: which is triggering a rule and then rule will build the plan and launch the workflow LCM Provisioning with following parameters then finally updating the WO status based on Provisioning Result: committed.
parameter in the LCM Provisioning step:
foregroundProvisioning: false
noTriggers: true
doRefresh: false
optimisticProvisioning: true
all the functionality working as expected but I have the following error in the task result of subsequent run task.
Observation:
in the 1st instance it is working fine as shown below but in the subsequent task run it is failing with error.
Share all details about your problem, including any error messages you may have received.
2026-06-19T12:18:49,351 ERROR https-openssl-nio-443-exec-6 sailpoint.server.ScriptletEvaluator:144 - org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: sailpoint.object.Identity.bundles, could not initialize proxy - no Session
at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:612)
at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:218)
at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:591)
at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:149)
at org.hibernate.collection.internal.PersistentList.iterator(PersistentList.java:155)
at sailpoint.object.Identity.loadForProvisioning(Identity.java:848)
at sailpoint.provisioning.IIQEvaluator.provision(IIQEvaluator.java:305)
at sailpoint.provisioning.PlanEvaluator.execute(PlanEvaluator.java:880)
at sailpoint.provisioning.PlanEvaluator.execute(PlanEvaluator.java:741)
at sailpoint.api.Provisioner.execute(Provisioner.java:1732)
at sailpoint.workflow.IdentityLibrary.provisionProject(IdentityLibrary.java:3264)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at sailpoint.server.ScriptletEvaluator.doCall(ScriptletEvaluator.java:134)
at sailpoint.server.ScriptletEvaluator.evalSource(ScriptletEvaluator.java:63)
at sailpoint.api.Workflower.evalSource(Workflower.java:6041)
at sailpoint.api.Workflower.advanceStep(Workflower.java:5280)
at sailpoint.api.Workflower.advance(Workflower.java:4667)
at sailpoint.api.Workflower.startCase(Workflower.java:3253)
at sailpoint.api.Workflower.launchSubcase(Workflower.java:5583)
at sailpoint.api.Workflower.launchSubcases(Workflower.java:5476)
at sailpoint.api.Workflower.advanceStep(Workflower.java:5267)
at sailpoint.api.Workflower.advance(Workflower.java:4667)
at sailpoint.api.Workflower.startCase(Workflower.java:3253)
at sailpoint.api.Workflower.launchSubcase(Workflower.java:5583)
at sailpoint.api.Workflower.launchSubcases(Workflower.java:5476)
at sailpoint.api.Workflower.advanceStep(Workflower.java:5267)
at sailpoint.api.Workflower.advance(Workflower.java:4667)
at sailpoint.api.Workflower.startCase(Workflower.java:3253)
at sailpoint.api.Workflower.launchSubcase(Workflower.java:5583)
at sailpoint.api.Workflower.launchSubcases(Workflower.java:5476)
at sailpoint.api.Workflower.advanceStep(Workflower.java:5267)
at sailpoint.api.Workflower.advance(Workflower.java:4667)
at sailpoint.api.Workflower.advanceSubcase(Workflower.java:5607)
at sailpoint.api.Workflower.advanceStep(Workflower.java:5200)
at sailpoint.api.Workflower.advance(Workflower.java:4667)
at sailpoint.api.Workflower.assimilate(Workflower.java:4317)
at sailpoint.api.Workflower.handleWorkItem(Workflower.java:7755)
at sailpoint.api.Workflower.process(Workflower.java:1962)
at sailpoint.api.Workflower.process(Workflower.java:1986)
at sailpoint.api.WorkflowSession.advance(WorkflowSession.java:468)
at sailpoint.service.WorkflowSessionService.advance(WorkflowSessionService.java:105)
at sailpoint.service.form.FormService.next(FormService.java:201)
at sailpoint.service.form.FormService.submit(FormService.java:123)
at sailpoint.rest.ui.form.BaseFormResource.submitOrValidate(BaseFormResource.java:162)
at sailpoint.rest.ui.form.BaseFormResource.submit(BaseFormResource.java:122)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.web.SailPointResponseFilter.doFilter(SailPointResponseFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.rest.jaxrs.MethodOverrideFilter.doFilter(MethodOverrideFilter.java:90)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.rest.RestCsrfValidationFilter.doFilter(RestCsrfValidationFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.rest.AuthenticationFilter.doFilter(AuthenticationFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.web.TraversalVulnerabilityFilter.doFilter(TraversalVulnerabilityFilter.java:69)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.web.EntraProxyTeamsHeaderFilter.doFilter(EntraProxyTeamsHeaderFilter.java:105)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.web.SailPointContextRequestFilter.doFilter(SailPointContextRequestFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.web.SailPointPollingRequestFilter.doFilter(SailPointPollingRequestFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at sailpoint.web.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:656)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1833)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:975)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:493)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:842)
2026-06-19T12:18:49,351 DEBUG https-openssl-nio-443-exec-6 sailpoint.tools.Internationalizer:230 - Couldn't find message for key 'failed to lazily initialize a collection of role: sailpoint.object.Identity.bundles, could not initialize proxy - no Session'
The Identity object is being carried across Hibernate sessions — it’s loaded in the first workflow run, serialized into the WorkflowCase, and when the second run attempts to access Identity.bundles (a lazy-loaded collection), the original session is gone.
The stack confirms it: Identity.loadForProvisioning() → IIQEvaluator.provision() tries to iterate bundles on a detached entity.
Fix — Re-fetch the Identity by name inside the rule before building the plan.
Wherever your rule retrieves the Identity object (likely from workflow variables or passed-in parameters), replace the stale reference with a fresh context.getObjectByName() fetch:
// Instead of using identity passed via workflow variable (detached one)
Identity identity = (Identity) wfc.get("identity"); // ← stale after 1st run
// Do this:
String identityName = (String) wfc.get("identityName"); // store name, not object
Identity identity = context.getObjectByName(Identity.class, identityName);
If the plan itself holds a reference to the Identity object (e.g., plan.setIdentity(identity)), ensure it’s set from the freshly fetched instance, not from anything deserialized out of the WorkflowCase.
Hi @naveenkumar3
Greetings!
Thanks for the response. I will test this and get back to you with the results. If it resolves the issue, I will mark your comment as the solution.
@pattabhi This happens when the identity loaded into hibernate session got decommissioned. It is advisable to load your identity whereever you want to use it.
Please look into your codebase for below items:
Are you passing identity object across methods? If so, please change it and pass identityname and load the identity directly in the method.
See if there are context.decache() being used. Best practice is to use context.decache(object) which you want to decache.
In some cases, i have seen creating a local variable of the context also helps, instead of using the global one.
@pattabhi Based on the artefacts shared over message, please try this:
Instead of using .setAttribute, can you generate a plan to set these attributes? Basically one plan to update identity attribute and other for AD updates.
You are using identity.getLinks().. Replace this with using IdentityService APIs.
Please try this. Else would like to get into a call to discuss this.
I was able to fix the issue using your recommendation.
Thank you so much for the great insights regarding the known issue and alternative approaches.
I have split the logic into two separate methods: the first handles the Identity Cube creation, and the second builds the plan and submits it to LCM Provisioning.