Hi, I've experienced the same issue as described on Apache Tomcat 10.1.13. After downgrading to 10.1.5 it started to work correctly. I also inspected the heapdump of the application with memory problems and found out that there were many org.apache.tomcat.websocket.WsSession present in OUTPUT_CLOSED state. When I tried locally, I found out, that when I open few websocket connections from Chrome and then go to Offline mode the WsSessions remain in OUTPUT_CLOSED state. New connections afterwards have state OPEN. In heapdump from production I saw around 4600 WsSessions but only 40 were open. The rest was in the output closed state. WsSessions are accessible through org.apache.coyote.AbstractProtocol -> waitingProcessors Set. In heapdump and it was clearly visible that 49% of heap was taken by the waitingProcessors set. When tomcat was downgraded to 10.1.5, I saw that WsSessions got cleared after going to offline mode.
Additional info - I've set the session timeout to 10minutes. The app uses Java 17 with Spring Boot 3.1.x stack. It does not use any external STOMP broker relay. Regards, Jakub.