diff --git a/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlWebSocketHandler.java b/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlWebSocketHandler.java index 800cef63..65e3988a 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlWebSocketHandler.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlWebSocketHandler.java @@ -213,7 +213,15 @@ public class GraphQlWebSocketHandler extends TextWebSocketHandler implements Sub .publishOn(state.getScheduler()) // Serial blocking send via single thread .subscribe(new SendMessageSubscriber(id, session, state)); } - case PING -> session.sendMessage(encode(GraphQlWebSocketMessage.pong(null))); + case PING -> + state.getScheduler().schedule(() -> { + try { + session.sendMessage(encode(GraphQlWebSocketMessage.pong(null))); + } + catch (IOException ex) { + ExceptionWebSocketHandlerDecorator.tryCloseWithError(session, ex, logger); + } + }); case COMPLETE -> { if (id != null) { Subscription subscription = state.getSubscriptions().remove(id);