[midPoint] "An attempt to modify an immutable" when tyring to create account in OpenLDAP with 4.10.x
Pavol Mederly
mederly at evolveum.com
Wed Mar 25 12:47:29 CET 2026
Hello Oliver,
looking at the stack trace, it seems that the problem is related to the
Preview changes functionality (the visualization of changes is involved)
and I'd say it's most probably a bug in midPoint. I assume that if you
clicked on "Save" instead of previewing the changes, the operation would
succeed.
You can log a bug report in our support portal, but, please be aware
that non-subscriber bugs are treated on "best effort" basis. Or, maybe
there's already a similar problem already reported there; as it looks
quite familiar to me.
Best regards,
--
Pavol Mederly
Interim Chief Product Officer
evolveum.com
On 24/03/2026 17:46, Oliver Schonefeld via midPoint wrote:
> Hello Pavol, Hello Fellow-Midpoint-Users,
>
> Am 23.03.2026 um 10:35 schrieb Pavol Mederly via midPoint:
>> immutability is a kind of internal protection of in-memory objects in
>> midPoint from unwanted modification. An (unexpected) attempt to
>> change an immutable object is manifested via this exception. It is
>> something that definitely should not occur.
>>
>> It could be a bug in midPoint or a problem in your configuration.
>> (The fact that it worked with 4.9.x leans towards the former a bit.)
>>
>> If you provide a stacktrace related to that exception, it could shed
>> some light to the situation.
>>
>> But no promises here - I am just saying that maybe the stacktrace
>> would ignite some idea in someone's head.
>
>
> Here is the stack trace:
> 2026-03-24 16:37:24,492 [] [http-nio-8080-exec-9] WARN
> (com.evolveum.midpoint.web.page.error.PageError): Creating error page
> for code java.lang.IllegalStateException, exception An attempt to
> modify an immutable:
> SAC(attributes):[PCV(null):[RA({.../resource/instance-3}employeeNumber):[PPV(String:1234567890)],
> RA({.../resource/instance-3}o):[PPV(String:Example Organization)],
> RA({.../resource/instance-3}sn):[PPV(String:User)],
> RA({.../resource/instance-3}cn):[PPV(String:Joe User)],
> RA({.../resource/instance-3}dn):[PPV(String:uid=juser,ou=people,ou=people,dc=example,dc=org)],
> RA({.../resource/instance-3}departmentNumber):[PPV(String:Example
> OU)], RA({.../resource/instance-3}givenName):[PPV(String:Joe)],
> RA({.../resource/instance-3}mail):[PPV(String:joe.user at example.org)],
> RA({.../resource/instance-3}uid):[PPV(String:juser)]]]: {}
> java.lang.IllegalStateException: An attempt to modify an immutable:
> SAC(attributes):[PCV(null):[RA({.../resource/instance-3}employeeNumber):[PPV(String:1234567890)],
> RA({.../resource/instance-3}o):[PPV(String:Example Organization)],
> RA({.../resource/instance-3}sn):[PPV(String:User)],
> RA({.../resource/instance-3}cn):[PPV(String:Joe User)],
> RA({.../resource/instance-3}dn):[PPV(String:uid=juser,ou=people,dc=example,dc=org)],
> RA({.../resource/instance-3}departmentNumber):[PPV(String:Example
> OU)], RA({.../resource/instance-3}givenName):[PPV(String:Joe)],
> RA({.../resource/instance-3}mail):[PPV(String:joe.user at example.org)],
> RA({.../resource/instance-3}uid):[PPV(String:juser)]]]
> at
> com.evolveum.midpoint.prism.Freezable.checkMutable(Freezable.java:27)
> at
> com.evolveum.midpoint.prism.impl.PrismContainerImpl.applyDefinition(PrismContainerImpl.java:432)
> at
> com.evolveum.midpoint.prism.impl.PrismContainerImpl.applyDefinition(PrismContainerImpl.java:59)
> at com.evolveum.midpoint.prism.Item.applyDefinition(Item.java:655)
> at
> com.evolveum.midpoint.schema.processor.ShadowDefinitionApplicator.applyAttributesDefinitionToContainer(ShadowDefinitionApplicator.java:227)
> at
> com.evolveum.midpoint.schema.processor.ShadowDefinitionApplicator.applyToShadow(ShadowDefinitionApplicator.java:160)
> at
> com.evolveum.midpoint.provisioning.impl.ProvisioningContext.applyCurrentDefinition(ProvisioningContext.java:663)
> at
> com.evolveum.midpoint.provisioning.impl.shadows.DefinitionsHelper.applyDefinition(DefinitionsHelper.java:89)
> at
> com.evolveum.midpoint.provisioning.impl.shadows.ShadowsFacade.applyDefinition(ShadowsFacade.java:141)
> at
> com.evolveum.midpoint.provisioning.impl.ProvisioningServiceImpl.applyDefinition(ProvisioningServiceImpl.java:853)
> at
> com.evolveum.midpoint.model.impl.visualizer.Resolver.resolve(Resolver.java:76)
> at
> com.evolveum.midpoint.model.impl.visualizer.Resolver.resolve(Resolver.java:109)
> at
> com.evolveum.midpoint.model.impl.visualizer.Visualizer.visualizeDelta(Visualizer.java:230)
> at
> com.evolveum.midpoint.model.impl.visualizer.Visualizer.visualizeDelta(Visualizer.java:221)
> at
> com.evolveum.midpoint.model.impl.visualizer.Visualizer.visualizeDelta(Visualizer.java:211)
> at
> com.evolveum.midpoint.model.impl.visualizer.Visualizer.visualizeDelta(Visualizer.java:206)
> at
> com.evolveum.midpoint.model.impl.visualizer.Visualizer.visualizeProjectionContext(Visualizer.java:157)
> at
> com.evolveum.midpoint.model.impl.visualizer.Visualizer.visualizeProjectionContexts(Visualizer.java:134)
> at
> com.evolveum.midpoint.model.impl.controller.ModelInteractionServiceImpl.visualizeModelContext(ModelInteractionServiceImpl.java:912)
> at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
> at java.base/java.lang.reflect.Method.invoke(Method.java:580)
> at
> org.apache.wicket.proxy.jdk.JdkProxyFactory$JdkHandler.invoke(JdkProxyFactory.java:172)
> at jdk.proxy4/jdk.proxy4.$Proxy179.visualizeModelContext(Unknown
> Source)
> at
> com.evolveum.midpoint.gui.impl.page.admin.component.preview.PreviewChangesTabPanel.initModels(PreviewChangesTabPanel.java:89)
> at
> com.evolveum.midpoint.gui.impl.page.admin.component.preview.PreviewChangesTabPanel.onInitialize(PreviewChangesTabPanel.java:77)
> at org.apache.wicket.Component.fireInitialize(Component.java:883)
> at
> org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1050)
> at
> org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:1027)
> at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:242)
> at
> com.evolveum.midpoint.gui.impl.page.admin.focus.PageFocusPreviewChanges.initLayout(PageFocusPreviewChanges.java:105)
> at
> com.evolveum.midpoint.gui.impl.page.admin.focus.PageFocusPreviewChanges.onInitialize(PageFocusPreviewChanges.java:84)
> at org.apache.wicket.Component.fireInitialize(Component.java:883)
> at
> org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1050)
> at org.apache.wicket.Page.onConfigure(Page.java:238)
> at
> com.evolveum.midpoint.gui.api.page.PageBase.onConfigure(PageBase.java:168)
> at org.apache.wicket.Component.configure(Component.java:996)
> at org.apache.wicket.Component.beforeRender(Component.java:938)
> at org.apache.wicket.Page.renderPage(Page.java:990)
> at
> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:124)
> at
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:236)
> at
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:913)
> at
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:63)
> at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:294)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:255)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:277)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:208)
> at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:307)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
> at
> com.evolveum.midpoint.web.util.MidPointProfilingServletFilter.doFilter(MidPointProfilingServletFilter.java:78)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
> at
> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
> at
> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
> at
> org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
> at
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
> at
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:459)
> at
> com.evolveum.midpoint.authentication.impl.filter.RefuseUnauthenticatedRequestFilter.doFilterInternal(RefuseUnauthenticatedRequestFilter.java:36)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:117)
> at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> com.evolveum.midpoint.authentication.impl.filter.FinishAuthenticationFilter.doFilterInternal(FinishAuthenticationFilter.java:88)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:125)
> at
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAnonymousAuthenticationFilter.doFilter(MidpointAnonymousAuthenticationFilter.java:93)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:235)
> at
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:229)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
> at
> org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> com.evolveum.midpoint.authentication.impl.filter.RedirectForLoginPagesWithAuthenticationFilter.doFilterInternal(RedirectForLoginPagesWithAuthenticationFilter.java:38)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
> at
> org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter$VirtualFilterChain.doFilter(MidpointAuthFilter.java:471)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter.processingOfAuthenticatedRequest(MidpointAuthFilter.java:431)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter.doFilterInternal(MidpointAuthFilter.java:131)
> at
> com.evolveum.midpoint.authentication.impl.filter.MidpointAuthFilter.doFilter(MidpointAuthFilter.java:99)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
> at
> com.evolveum.midpoint.authentication.impl.filter.TransformExceptionFilter.doFilterInternal(TransformExceptionFilter.java:32)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
> at
> com.evolveum.midpoint.authentication.impl.filter.SequenceAuditFilter.doFilter(SequenceAuditFilter.java:92)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
> at
> org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:151)
> at
> org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:129)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
> at
> org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
> at
> org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
> at
> org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
> at
> org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
> at
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
> at
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
> at
> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
> at
> org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52)
> at
> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
> at
> org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
> at
> org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:319)
> at
> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
> at
> org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$4(HandlerMappingIntrospector.java:267)
> at
> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
> at
> org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
> at
> org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:240)
> at
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
> at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
> at
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
> at
> org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
> at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
> at
> com.evolveum.midpoint.web.boot.TrailingSlashRedirectingFilter.doFilterInternal(TrailingSlashRedirectingFilter.java:60)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
> at
> com.evolveum.midpoint.web.boot.NodeIdHeaderValve.invoke(NodeIdHeaderValve.java:41)
> at
> com.evolveum.midpoint.web.boot.TomcatRootValve.invoke(TomcatRootValve.java:61)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
> at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
> at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1775)
> at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
> at
> org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
> at
> org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
> at java.base/java.lang.Thread.run(Thread.java:1583)
>
> For refernce, I've also attached the LDAP resource config.
>
> Thank you and best regards
> Oliver
>
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> https://lists.evolveum.com/mailman/listinfo/midpoint
More information about the midPoint
mailing list