504 Gateway Timeout Issue with Vaadin 24.6.3 + Spring Boot 3.2.4

Hi everyone,

I’m using a framework with the following stack:

Back-end: Spring Boot 3.2.4

UI: Vaadin 24.6.3

Occasionally, my application freezes and throws a 504 Gateway Timeout error. Here’s a snippet of the error log I get:


2025-07-14T15:45:32.551+07:00 DEBUG 1 --- [nio-8080-exec-5] c.v.f.server.communication.PushHandler   : Session expired before push disconnect event was received
com.vaadin.flow.server.SessionExpiredException: null
	at com.vaadin.flow.server.VaadinService.doFindOrCreateVaadinSession(VaadinService.java:985) ~[flow-server-24.6.3.jar!/:24.6.3]
	at com.vaadin.flow.server.VaadinService.findOrCreateVaadinSession(VaadinService.java:921) ~[flow-server-24.6.3.jar!/:24.6.3]
	at com.vaadin.flow.server.VaadinService.findVaadinSession(VaadinService.java:760) ~[flow-server-24.6.3.jar!/:24.6.3]
	at com.vaadin.flow.server.communication.PushHandler.handleConnectionLost(PushHandler.java:434) ~[flow-server-24.6.3.jar!/:24.6.3]
	at com.vaadin.flow.server.communication.PushHandler.connectionLost(PushHandler.java:388) ~[flow-server-24.6.3.jar!/:24.6.3]
	at com.vaadin.flow.server.communication.PushAtmosphereHandler.onStateChange(PushAtmosphereHandler.java:62) ~[flow-server-24.6.3.jar!/:24.6.3]
	at org.atmosphere.cpr.AsynchronousProcessor.invokeAtmosphereHandler(AsynchronousProcessor.java:538) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar!/:3.0.5.slf4jvaadin1]
	at org.atmosphere.cpr.AsynchronousProcessor.completeLifecycle(AsynchronousProcessor.java:480) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar!/:3.0.5.slf4jvaadin1]
	at org.atmosphere.cpr.AsynchronousProcessor.endRequest(AsynchronousProcessor.java:584) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar!/:3.0.5.slf4jvaadin1]
	at org.atmosphere.websocket.DefaultWebSocketProcessor.executeClose(DefaultWebSocketProcessor.java:689) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar!/:3.0.5.slf4jvaadin1]
	at org.atmosphere.websocket.DefaultWebSocketProcessor.close(DefaultWebSocketProcessor.java:635) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar!/:3.0.5.slf4jvaadin1]
	at org.atmosphere.container.JSR356Endpoint.onClose(JSR356Endpoint.java:318) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar!/:3.0.5.slf4jvaadin1]
	at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:733) ~[tomcat-embed-websocket-10.1.39.jar!/:na]
	at org.apache.tomcat.websocket.WsSession.onClose(WsSession.java:641) ~[tomcat-embed-websocket-10.1.39.jar!/:na]
	at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.close(WsHttpUpgradeHandler.java:256) ~[tomcat-embed-websocket-10.1.39.jar!/:na]
	at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:158) ~[tomcat-embed-websocket-10.1.39.jar!/:na]
	at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:60) ~[tomcat-embed-core-10.1.39.jar!/:na]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:57) ~[tomcat-embed-core-10.1.39.jar!/:na]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.39.jar!/:na]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-10.1.39.jar!/:na]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.39.jar!/:na]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.39.jar!/:na]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.39.jar!/:na]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.39.jar!/:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

What’s strange is:

When the app is “frozen”, existing users (already logged in) can still load some static pages.

I can still call certain APIs directly.

However, new users logging in via SSO cannot proceed after login — the app hangs until a 504 Gateway Timeout occurs.

Has anyone encountered a similar issue or knows what could be causing this?
I’d be happy to provide more detailed logs or configuration if needed.

Thanks so much for your help!