Skip to content

Commit 4de0536

Browse files
committed
Add timeout flush delay
1 parent 25e79b9 commit 4de0536

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

server-common/src/main/java/io/a2a/server/events/EventConsumer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,13 @@ public Flow.Publisher<EventQueueItem> consumeAll() {
259259
boolean writeCompleted = finalEventWriteLatch.await(2, TimeUnit.SECONDS);
260260
if (writeCompleted) {
261261
LOGGER.debug("Final event write confirmed via backpressure signal");
262+
// CRITICAL: Even after backpressure confirms write to Vert.x buffer,
263+
// TCP still needs time to transmit data to client socket.
264+
// Brief delay ensures final event reaches client before stream closes.
265+
// Without this, response.end() can close socket while TCP is still
266+
// transmitting buffered data, causing "Stream cancelled" on client.
267+
Thread.sleep(50);
268+
LOGGER.debug("TCP flush delay completed");
262269
} else {
263270
LOGGER.warn("Timeout waiting for final event write confirmation - proceeding anyway");
264271
}

0 commit comments

Comments
 (0)