This seems to be the same Object Structure cache error from your earlier log. The APPLICATIONAUTH query is Maximo rebuilding the MAXADMIN security profile following the security change. During that process, Maximo attempts to load the Object Structure cache and encounters the null primary-key information.
I do not think the READ grant itself created the primary-key problem; it appears to have triggered the process that exposed it. Unfortunately, this stack trace still does not identify the offending object or object structure.
In my case, the missing index was identified while troubleshooting my environment, but the affected object in your environment may be entirely different. I recommend opening an IBM Support case and asking them to identify which object Maximo is processing when MosDetailInfo.setAltKeys() fails. They should also check for an object included in an Object Structure that has missing or inconsistent primary/unique index metadata. Comparing Database Configuration and Object Structure metadata with a working environment may help narrow it down.
This part of your stack trace points to the same issue:
MosDetailInfo.setAltKeys
ObjectStructureCacheImpl.loadMosDetails
BMXAA7733E - There was an error loading the Object Structure cache
According to Google:
Original Message:
Sent: 07-21-2026 09:25
From: Suhas Joshi
Subject: Inspection Forms Page Not Opening
Hi Julia,
We just gave access to INSPECTION app for security group MAXADMIN for READ sigoption. post that we are trying to restart Manage and seeing below error.
20 Jul 2026 17:16:15:158 [INFO] [MXServer] [CID-MXOSLC-10642] BMXAA6719I - USER = (MAXADMIN) SPID = (10.19.0.102.50955.260720171210) app (null) object (APPLICATIONAUTH) : select * from applicationauth where groupname in ( 'MAXADMIN' , 'USERMANAGEMENT' ) order by app, groupname for read only
&&& empty error
[err] java.lang.Exception
[err] at psdi.util.logging.Log4jLogger.error(Log4jLogger.java:379)
[err] at psdi.iface.mos.ObjectStructureCacheImpl.loadIntegrationDictionary(ObjectStructureCacheImpl.java:244)
[err] at psdi.iface.mos.ObjectStructureCacheImpl.reloadOS(ObjectStructureCacheImpl.java:88)
[err] at psdi.iface.mos.ObjectStructureCacheImpl.init(ObjectStructureCacheImpl.java:70)
[err] at psdi.mbo.AbstractMaximoMTEnabledCache.getCache(AbstractMaximoMTEnabledCache.java:81)
[err] at psdi.iface.mos.ObjectStructureCache.getMosInfo(ObjectStructureCache.java:120)
[err] at psdi.app.appsetup.MaxApps.getSiteOrgType(MaxApps.java:463)
[err] at psdi.security.Profile.constructAppAuthOneApp(Profile.java:1288)
[err] at psdi.security.Profile.constructAppAuthOneApp(Profile.java:1225)
[err] at psdi.security.Profile.constructAppAuthAll(Profile.java:1202)
[err] at psdi.security.Profile.constructProfile(Profile.java:892)
[err] at psdi.security.Profile.<init>(Profile.java:603)
[err] at psdi.security.SecurityService$SecurityInfo.getProfile(SecurityService.java:4224)
[err] at psdi.security.SecurityService$SecurityInfo.getProfile(SecurityService.java:4208)
[err] at psdi.security.SecurityService.getProfile(SecurityService.java:3506)
[err] at psdi.server.AppService.getProfile(AppService.java:333)
[err] at com.ibm.tivoli.maximo.oslc.provider.AbstractRouteHandler.checkAuth(AbstractRouteHandler.java:172)
[err] at com.ibm.tivoli.maximo.oslc.provider.MMIRouteHandler.handleRequest(MMIRouteHandler.java:47)
[err] at com.ibm.tivoli.maximo.oslc.provider.MaximoOslcProviderServlet.handleRoute(MaximoOslcProviderServlet.java:1402)
[err] at com.ibm.tivoli.maximo.oslc.provider.MaximoOslcProviderServlet.doGet(MaximoOslcProviderServlet.java:768)
[err] at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
[err] at javax.servlet.http.HttpServlet.service(HttpServlet.java:791)
[err] at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1262)
[err] at [internal classes]
[err] at com.ibm.tivoli.maximo.filter.UnSupportedMethodBlockFilter.doFilter(UnSupportedMethodBlockFilter.java:60)
[err] at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203)
[err] at [internal classes]
[err] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[err] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[err] at java.base/java.lang.Thread.run(Thread.java:854)
20 Jul 2026 17:16:15:924 [ERROR] [MXServer] [CID-MXOSLC-10642] null
java.lang.NullPointerException: null
at psdi.iface.mos.MosDetailInfo.setAltKeys(MosDetailInfo.java:424) ~[businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.loadMosDetails(ObjectStructureCacheImpl.java:336) ~[businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.loadIntegrationDictionary(ObjectStructureCacheImpl.java:224) [businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.reloadOS(ObjectStructureCacheImpl.java:88) [businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.init(ObjectStructureCacheImpl.java:70) [businessobjects.jar:?]
at psdi.mbo.AbstractMaximoMTEnabledCache.getCache(AbstractMaximoMTEnabledCache.java:81) [businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCache.getMosInfo(ObjectStructureCache.java:120) [businessobjects.jar:?]
at psdi.app.appsetup.MaxApps.getSiteOrgType(MaxApps.java:463) [businessobjects.jar:?]
at psdi.security.Profile.constructAppAuthOneApp(Profile.java:1288) [businessobjects.jar:?]
at psdi.security.Profile.constructAppAuthOneApp(Profile.java:1225) [businessobjects.jar:?]
at psdi.security.Profile.constructAppAuthAll(Profile.java:1202) [businessobjects.jar:?]
at psdi.security.Profile.constructProfile(Profile.java:892) [businessobjects.jar:?]
at psdi.security.Profile.<init>(Profile.java:603) [businessobjects.jar:?]
at psdi.security.SecurityService$SecurityInfo.getProfile(SecurityService.java:4224) [businessobjects.jar:?]
at psdi.security.SecurityService$SecurityInfo.getProfile(SecurityService.java:4208) [businessobjects.jar:?]
at psdi.security.SecurityService.getProfile(SecurityService.java:3506) [businessobjects.jar:?]
at psdi.server.AppService.getProfile(AppService.java:333) [businessobjects.jar:?]
at com.ibm.tivoli.maximo.oslc.provider.AbstractRouteHandler.checkAuth(AbstractRouteHandler.java:172) [businessobjects.jar:?]
at com.ibm.tivoli.maximo.oslc.provider.MMIRouteHandler.handleRequest(MMIRouteHandler.java:47) [businessobjects.jar:?]
at com.ibm.tivoli.maximo.oslc.provider.MaximoOslcProviderServlet.handleRoute(MaximoOslcProviderServlet.java:1402) [commonweb.jar:?]
at com.ibm.tivoli.maximo.oslc.provider.MaximoOslcProviderServlet.doGet(MaximoOslcProviderServlet.java:768) [commonweb.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:686) [com.ibm.websphere.javaee.servlet.4.0_1.0.108.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:791) [com.ibm.websphere.javaee.servlet.4.0_1.0.108.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1262) [com.ibm.ws.webcontainer_1.1.108.jar:?]
at [internal classes]
at com.ibm.tivoli.maximo.filter.UnSupportedMethodBlockFilter.doFilter(UnSupportedMethodBlockFilter.java:60) [commonweb.jar:?]
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203) [com.ibm.ws.webcontainer_1.1.108.jar:?]
at [internal classes]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:854) [?:?]
20 Jul 2026 17:16:15:936 [ERROR] [MXServer] [CID-MXOSLC-10642] BMXAA7733E - There was an error loading the Object Strcuture cache: null
null
psdi.util.MXSystemException: BMXAA7733E - There was an error loading the Object Strcuture cache: null
null
at psdi.iface.mos.ObjectStructureCacheImpl.loadIntegrationDictionary(ObjectStructureCacheImpl.java:253) ~[businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.reloadOS(ObjectStructureCacheImpl.java:88) ~[businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.init(ObjectStructureCacheImpl.java:70) ~[businessobjects.jar:?]
at psdi.mbo.AbstractMaximoMTEnabledCache.getCache(AbstractMaximoMTEnabledCache.java:81) [businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCache.getMosInfo(ObjectStructureCache.java:120) [businessobjects.jar:?]
at psdi.app.appsetup.MaxApps.getSiteOrgType(MaxApps.java:463) [businessobjects.jar:?]
at psdi.security.Profile.constructAppAuthOneApp(Profile.java:1288) [businessobjects.jar:?]
at psdi.security.Profile.constructAppAuthOneApp(Profile.java:1225) [businessobjects.jar:?]
at psdi.security.Profile.constructAppAuthAll(Profile.java:1202) [businessobjects.jar:?]
at psdi.security.Profile.constructProfile(Profile.java:892) [businessobjects.jar:?]
at psdi.security.Profile.<init>(Profile.java:603) [businessobjects.jar:?]
at psdi.security.SecurityService$SecurityInfo.getProfile(SecurityService.java:4224) [businessobjects.jar:?]
at psdi.security.SecurityService$SecurityInfo.getProfile(SecurityService.java:4208) [businessobjects.jar:?]
at psdi.security.SecurityService.getProfile(SecurityService.java:3506) [businessobjects.jar:?]
at psdi.server.AppService.getProfile(AppService.java:333) [businessobjects.jar:?]
at com.ibm.tivoli.maximo.oslc.provider.AbstractRouteHandler.checkAuth(AbstractRouteHandler.java:172) [businessobjects.jar:?]
at com.ibm.tivoli.maximo.oslc.provider.MMIRouteHandler.handleRequest(MMIRouteHandler.java:47) [businessobjects.jar:?]
at com.ibm.tivoli.maximo.oslc.provider.MaximoOslcProviderServlet.handleRoute(MaximoOslcProviderServlet.java:1402) [commonweb.jar:?]
at com.ibm.tivoli.maximo.oslc.provider.MaximoOslcProviderServlet.doGet(MaximoOslcProviderServlet.java:768) [commonweb.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:686) [com.ibm.websphere.javaee.servlet.4.0_1.0.108.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:791) [com.ibm.websphere.javaee.servlet.4.0_1.0.108.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1262) [com.ibm.ws.webcontainer_1.1.108.jar:?]
at [internal classes]
at com.ibm.tivoli.maximo.filter.UnSupportedMethodBlockFilter.doFilter(UnSupportedMethodBlockFilter.java:60) [commonweb.jar:?]
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203) [com.ibm.ws.webcontainer_1.1.108.jar:?]
at [internal classes]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:854) [?:?]
Caused by: java.lang.NullPointerException
------------------------------
Suhas Joshi
Infosys Ltd
------------------------------
Original Message:
Sent: 07-21-2026 08:41
From: Julia Scott
Subject: Inspection Forms Page Not Opening
I sent my log to IBM and they identified it. It looks to me like your error is slightly different because of the Primary Key information in there. Have you recently added any object structures or custom objects? It sounds like there is an object missing a valid primary/index or key. Following are the notes from my case:
TLOAMLICENSE is part of Control Desk. On the object in Database Configuration, it looks like it is set to use the TLOAMLICENSE_NDX2 but we're unable to find it to determine which columns to look at. This will break the entire cache for object structures (breaking integrations, mobile, work centers, etc.).
They should open the TLOAMLICENSE object in Database Configuration, then switch to the Indexes tab in Database Configuration. Add the following index if it does not exist.
IMPORTANT: Before running the DB Config, they should verify they have not violated the unique index rule in the database. They should run the following query:
select licensenum,orgid from tloamlicense group by licensenum,orgid having count(1)>1;
Index: TLOAMLICENSE_NDX2
Enforce Uniqueness: Enabled
Columns
LICENSENUM
Sequence: 1
Ascending: Enabled
ORGID
Sequence 2
Ascending: Enabled


------------------------------
Julia Scott
Sarasota County Government
------------------------------
Original Message:
Sent: 07-20-2026 13:35
From: Suhas Joshi
Subject: Inspection Forms Page Not Opening
Hi Julia,
How did you identify the missing index? We also have similar issue with below error in MAS 9.1. We see this error in UI pods.
[ERROR] [integration] Cannot invoke "[Ljava.lang.String;.clone()" because "primKeys" is null
java.lang.NullPointerException: Cannot invoke "[Ljava.lang.String;.clone()" because "primKeys" is null
at psdi.iface.mos.MosDetailInfo.setAltKeys(MosDetailInfo.java:430) ~[businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.loadMosDetails(ObjectStructureCacheImpl.java:336) ~[businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.loadIntegrationDictionary(ObjectStructureCacheImpl.java:224) [businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.reloadOS(ObjectStructureCacheImpl.java:88) [businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCacheImpl.init(ObjectStructureCacheImpl.java:70) [businessobjects.jar:?]
at psdi.mbo.AbstractMaximoMTEnabledCache.getCache(AbstractMaximoMTEnabledCache.java:81) [businessobjects.jar:?]
at psdi.mbo.AbstractMaximoMTEnabledCache.init(AbstractMaximoMTEnabledCache.java:49) [businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCache.<init>(ObjectStructureCache.java:83) [businessobjects.jar:?]
at psdi.iface.mos.ObjectStructureCache.<clinit>(ObjectStructureCache.java:55) [businessobjects.jar:?]
at psdi.iface.mic.MicService.init(MicService.java:172) [businessobjects.jar:?]
at psdi.iface.mic.EntMicService.init(EntMicService.java:141) [businessobjects.jar:?]
at psdi.server.ServiceCoordinator.init(ServiceCoordinator.java:154) [businessobjects.jar:?]
at psdi.server.MXServer.init(MXServer.java:2759) [businessobjects.jar:?]
at psdi.server.MXServer.start(MXServer.java:3905) [businessobjects.jar:?]
at psdi.servlet.MAXIMOStartupServlet.init(MAXIMOStartupServlet.java:116) [maximoui.war:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:304) [com.ibm.ws.webcontainer_1.1.108.jar:?]
at [internal classes]
at com.ibm.ws.webcontainer.osgi.WebContainer.access$100(WebContainer.java:113) [com.ibm.ws.webcontainer_1.1.108.jar:?]
at com.ibm.ws.webcontainer.osgi.WebContainer$3.run(WebContainer.java:996) [com.ibm.ws.webcontainer_1.1.108.jar:?]
at [internal classes]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:854) [?:?]
------------------------------
Suhas Joshi
Infosys Ltd
------------------------------
Original Message:
Sent: 05-31-2024 14:41
From: Julia Scott
Subject: Inspection Forms Page Not Opening
It turned out to be a missing index in the TLOAMLICENSE object. Once that was added, inspection forms was able to be accessed again.
------------------------------
Julia Scott
Sarasota County Government
------------------------------