Cache warming issue upon upgrade

Hello Folks,

So I’m getting the below exception on update + a clean rebuild of the system but with an existing database (production environment).

Why is the cache still there? Where is it stored and how can I get rid of it?

16:02:20.929  INFO         main           o.moqui.i.s.ScreenFacadeImpl Warming cache for all screens under component://webroot/screen/webroot.xml
16:02:24.439 ERROR         main           o.moqui.i.s.ScreenFacadeImpl Error loading screen at [component://tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyEmail.xml] during cache warming
org.moqui.BaseArtifactException: Could not find definition for screen location component://tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyEmail.xml
	at org.moqui.impl.screen.ScreenFacadeImpl.makeScreenDefinition(ScreenFacadeImpl.groovy:201) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.screen.ScreenFacadeImpl.getScreenDefinition(ScreenFacadeImpl.groovy:157) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.screen.ScreenFacadeImpl.warmCacheScreen(ScreenFacadeImpl.groovy:107) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.screen.ScreenFacadeImpl.warmCacheScreen(ScreenFacadeImpl.groovy:109) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.screen.ScreenFacadeImpl.warmCacheScreen(ScreenFacadeImpl.groovy:109) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.screen.ScreenFacadeImpl.warmCacheScreen(ScreenFacadeImpl.groovy:109) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.screen.ScreenFacadeImpl.warmCacheScreen(ScreenFacadeImpl.groovy:109) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.screen.ScreenFacadeImpl.warmCache(ScreenFacadeImpl.groovy:99) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.context.ExecutionContextFactoryImpl.warmCache(ExecutionContextFactoryImpl.groovy:624) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.context.ExecutionContextFactoryImpl.postFacadeInit(ExecutionContextFactoryImpl.groovy:589) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.context.ExecutionContextFactoryImpl.<init>(ExecutionContextFactoryImpl.groovy:237) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.Moqui.dynamicInit(Moqui.java:62) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at org.moqui.impl.webapp.MoquiContextListener.contextInitialized(MoquiContextListener.groovy:67) ~[moqui_temp1616495035759503176WEB-INF_lib_moqui-framework-3.0.0-rc8.jar.:3.0.0-rc8]
	at MoquiStart.main(MoquiStart.java:293) [moqui.war:?]
1 Like

In a recent pull request for MFA there were some screens missing due to some merging difficulty, this has now been fixed (see the most recent pull request from Michael/acetousk for moqui-runtime and SimpleScreens).

This shows up in production mode because it warms the screen definition cache and in doing so loads all screens so if any screen has an issue, like referencing a screen that doesn’t exist, you’ll see that in the logs.

2 Likes