The limit that fires first is the servlet container's WebSocket buffer, not Spring's messageSizeLimit. 'body' below is the length of the JSON string field; the STOMP frame carries about 90 bytes of headers on top of it. === container buffer: Tomcat default (8192, see /diag) === 8 KB body -> delivered, body length 8192 16 KB body -> delivered, body length 16384 60 KB body -> NOT delivered, connection dropped largest body delivered : 16459 bytes smallest body rejected : 16522 bytes === container buffer set to 16384 === largest body delivered : 16446 bytes smallest body rejected : 16496 bytes === container buffer set to 32768 === largest body delivered : 32615 bytes smallest body rejected : 32665 bytes === container buffer set to 65536 === largest body delivered : 65350 bytes smallest body rejected : 65400 bytes === bigframes profile: container buffer 256 KB, Spring limit 64 KB === 16 KB body -> delivered, body length 16384 60 KB body -> delivered, body length 61440 desti..], byteCount=82068, last=true] in session 1655473b-76fe-4489-99d6-e3f8200b41b4. Sending STOMP ERROR to client. org.springframework.messaging.simp.stomp.StompConversionException: The configured STOMP buffer size limit of 65536 bytes has been exceeded 80 KB body -> NOT delivered, connection dropped desti..], byteCount=204949, last=true] in session 8dcce90c-48db-43a5-8d32-659da1fe32d8. Sending STOMP ERROR to client. org.springframework.messaging.simp.stomp.StompConversionException: The configured STOMP buffer size limit of 65536 bytes has been exceeded 200 KB body -> NOT delivered, connection dropped Spring's own limit, once the container is out of the way: org.springframework.messaging.simp.stomp.StompConversionException: The configured STOMP buffer size limit of 65536 bytes has been exceeded "ws.container.defaultMaxTextMessageBufferSize":262144 "ws.container.defaultMaxTextMessageBufferSize":8192