I'm including the stack-trace in case that's helpful Note references to tiles is for the Jakarta EE upgraded tiles at https://github.com/tntim96/tiles/tree/jakarta-upgrade
writeMessage:385, MessageTag (org.springframework.web.servlet.tags) doEndTag:285, MessageTag (org.springframework.web.servlet.tags) _jspx_meth_spring_005ftheme_005f2:406, default_005ftemplate_jsp (org.apache.jsp.WEB_002dINF.templates) _jspService:405, default_005ftemplate_jsp (org.apache.jsp.WEB_002dINF.templates) service:70, HttpJspBase (org.apache.jasper.runtime) service:658, HttpServlet (jakarta.servlet.http) service:456, JspServletWrapper (org.apache.jasper.servlet) serviceJspFile:380, JspServlet (org.apache.jasper.servlet) service:328, JspServlet (org.apache.jasper.servlet) service:658, HttpServlet (jakarta.servlet.http) internalDoFilter:205, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) doFilter:51, WsFilter (org.apache.tomcat.websocket.server) internalDoFilter:174, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) lambda$doFilterInternal$3:231, FilterChainProxy (org.springframework.security.web) doFilter:-1, FilterChainProxy$$Lambda$2217/0x0000000802473210 (org.springframework.security.web) doFilter:365, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:100, AuthorizationFilter (org.springframework.security.web.access.intercept) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:126, ExceptionTranslationFilter (org.springframework.security.web.access) doFilter:120, ExceptionTranslationFilter (org.springframework.security.web.access) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:62, SiteSecurityAuthFilter (mycode.grants.site.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:100, AnonymousAuthenticationFilter (org.springframework.security.web.authentication) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:78, ClusteredConcurrentSessionFilter (mycode.grants.core.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:179, SecurityContextHolderAwareRequestFilter (org.springframework.security.web.servletapi) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:63, RequestCacheAwareFilter (org.springframework.security.web.savedrequest) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:78, CSPApplyFilter (mycode.grants.site.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:227, AbstractAuthenticationProcessingFilter (org.springframework.security.web.authentication) doFilter:221, AbstractAuthenticationProcessingFilter (org.springframework.security.web.authentication) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:107, LogoutFilter (org.springframework.security.web.authentication.logout) doFilter:93, LogoutFilter (org.springframework.security.web.authentication.logout) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:88, ConcurrentLoginFilter (mycode.grants.site.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:58, WaitingRoomFilter (mycode.grants.site.web) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:75, CSRFSameOriginHeaderCheckFilter (mycode.common.web) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:110, OncePerRequestFilter (org.springframework.web.filter) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:281, SiteSecurityFilter (mycode.grants.site.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:41, SessionTrackingFilter (mycode.common.web) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:75, SecurityContextHolderFilter (org.springframework.security.web.context) doFilter:69, SecurityContextHolderFilter (org.springframework.security.web.context) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:110, OncePerRequestFilter (org.springframework.web.filter) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:133, ChannelProcessingFilter (org.springframework.security.web.access.channel) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:110, OncePerRequestFilter (org.springframework.web.filter) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilterInternal:233, FilterChainProxy (org.springframework.security.web) doFilter:186, FilterChainProxy (org.springframework.security.web) invokeDelegate:352, DelegatingFilterProxy (org.springframework.web.filter) doFilter:268, DelegatingFilterProxy (org.springframework.web.filter) internalDoFilter:174, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) invoke:642, ApplicationDispatcher (org.apache.catalina.core) processRequest:408, ApplicationDispatcher (org.apache.catalina.core) doForward:340, ApplicationDispatcher (org.apache.catalina.core) forward:277, ApplicationDispatcher (org.apache.catalina.core) forward:170, HeaderWriterFilter$HeaderWriterRequestDispatcher (org.springframework.security.web.header) forward:265, ServletRequest (org.apache.tiles.request.servlet) doForward:228, ServletRequest (org.apache.tiles.request.servlet) dispatch:57, AbstractClientRequest (org.apache.tiles.request) render:47, DispatchRenderer (org.apache.tiles.request.render) render:259, BasicTilesContainer (org.apache.tiles.impl) render:397, BasicTilesContainer (org.apache.tiles.impl) render:238, BasicTilesContainer (org.apache.tiles.impl) render:221, BasicTilesContainer (org.apache.tiles.impl) render:59, DefinitionRenderer (org.apache.tiles.renderer) renderMergedOutputModel:145, TilesView (mycode.grants.web.tiles) render:314, AbstractView (org.springframework.web.servlet.view) render:1415, DispatcherServlet (org.springframework.web.servlet) processDispatchResult:1159, DispatcherServlet (org.springframework.web.servlet) doDispatch:1098, DispatcherServlet (org.springframework.web.servlet) doService:974, DispatcherServlet (org.springframework.web.servlet) processRequest:1014, FrameworkServlet (org.springframework.web.servlet) doGet:903, FrameworkServlet (org.springframework.web.servlet) service:564, HttpServlet (jakarta.servlet.http) service:885, FrameworkServlet (org.springframework.web.servlet) service:658, HttpServlet (jakarta.servlet.http) internalDoFilter:205, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) doFilterInternal:155, OpenSessionInViewFilter (org.springframework.orm.hibernate5.support) doFilter:116, OncePerRequestFilter (org.springframework.web.filter) internalDoFilter:174, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) doFilter:65, LoggerContextFilter (ch.qos.logback.classic.selector.servlet) internalDoFilter:174, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) doFilter:51, WsFilter (org.apache.tomcat.websocket.server) internalDoFilter:174, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) lambda$doFilterInternal$3:231, FilterChainProxy (org.springframework.security.web) doFilter:-1, FilterChainProxy$$Lambda$2217/0x0000000802473210 (org.springframework.security.web) doFilter:365, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:100, AuthorizationFilter (org.springframework.security.web.access.intercept) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:126, ExceptionTranslationFilter (org.springframework.security.web.access) doFilter:120, ExceptionTranslationFilter (org.springframework.security.web.access) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:62, SiteSecurityAuthFilter (mycode.grants.site.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:100, AnonymousAuthenticationFilter (org.springframework.security.web.authentication) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:78, ClusteredConcurrentSessionFilter (mycode.grants.core.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:179, SecurityContextHolderAwareRequestFilter (org.springframework.security.web.servletapi) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:63, RequestCacheAwareFilter (org.springframework.security.web.savedrequest) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:78, CSPApplyFilter (mycode.grants.site.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:227, AbstractAuthenticationProcessingFilter (org.springframework.security.web.authentication) doFilter:221, AbstractAuthenticationProcessingFilter (org.springframework.security.web.authentication) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:107, LogoutFilter (org.springframework.security.web.authentication.logout) doFilter:93, LogoutFilter (org.springframework.security.web.authentication.logout) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:88, ConcurrentLoginFilter (mycode.grants.site.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:58, WaitingRoomFilter (mycode.grants.site.web) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:75, CSRFSameOriginHeaderCheckFilter (mycode.common.web) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doHeadersAfter:90, HeaderWriterFilter (org.springframework.security.web.header) doFilterInternal:75, HeaderWriterFilter (org.springframework.security.web.header) doFilter:116, OncePerRequestFilter (org.springframework.web.filter) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:281, SiteSecurityFilter (mycode.grants.site.security) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:41, SessionTrackingFilter (mycode.common.web) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:82, SecurityContextHolderFilter (org.springframework.security.web.context) doFilter:69, SecurityContextHolderFilter (org.springframework.security.web.context) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilterInternal:62, WebAsyncManagerIntegrationFilter (org.springframework.security.web.context.request.async) doFilter:116, OncePerRequestFilter (org.springframework.web.filter) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilter:133, ChannelProcessingFilter (org.springframework.security.web.access.channel) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilterInternal:42, DisableEncodeUrlFilter (org.springframework.security.web.session) doFilter:116, OncePerRequestFilter (org.springframework.web.filter) doFilter:374, FilterChainProxy$VirtualFilterChain (org.springframework.security.web) doFilterInternal:233, FilterChainProxy (org.springframework.security.web) doFilter:191, FilterChainProxy (org.springframework.security.web) invokeDelegate:352, DelegatingFilterProxy (org.springframework.web.filter) doFilter:268, DelegatingFilterProxy (org.springframework.web.filter) internalDoFilter:174, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) doFilterInternal:201, CharacterEncodingFilter (org.springframework.web.filter) doFilter:116, OncePerRequestFilter (org.springframework.web.filter) internalDoFilter:174, ApplicationFilterChain (org.apache.catalina.core) doFilter:149, ApplicationFilterChain (org.apache.catalina.core) invoke:167, StandardWrapperValve (org.apache.catalina.core) invoke:90, StandardContextValve (org.apache.catalina.core) invoke:482, AuthenticatorBase (org.apache.catalina.authenticator) invoke:115, StandardHostValve (org.apache.catalina.core) invoke:93, ErrorReportValve (org.apache.catalina.valves) invoke:74, StandardEngineValve (org.apache.catalina.core) invoke:735, RemoteIpValve (org.apache.catalina.valves) service:340, CoyoteAdapter (org.apache.catalina.connector) service:391, Http11Processor (org.apache.coyote.http11) process:63, AbstractProcessorLight (org.apache.coyote) process:896, AbstractProtocol$ConnectionHandler (org.apache.coyote) doRun:1744, NioEndpoint$SocketProcessor (org.apache.tomcat.util.net) run:52, SocketProcessorBase (org.apache.tomcat.util.net) runWorker:1191, ThreadPoolExecutor (org.apache.tomcat.util.threads) run:659, ThreadPoolExecutor$Worker (org.apache.tomcat.util.threads) run:61, TaskThread$WrappingRunnable (org.apache.tomcat.util.threads) run:833, Thread (java.lang)