diff --git a/runtime/binding-mcp/src/main/java/io/aklivity/zilla/runtime/binding/mcp/internal/stream/McpProxyLifecycleFactory.java b/runtime/binding-mcp/src/main/java/io/aklivity/zilla/runtime/binding/mcp/internal/stream/McpProxyLifecycleFactory.java index 16ed167581..6e3ca6ff05 100644 --- a/runtime/binding-mcp/src/main/java/io/aklivity/zilla/runtime/binding/mcp/internal/stream/McpProxyLifecycleFactory.java +++ b/runtime/binding-mcp/src/main/java/io/aklivity/zilla/runtime/binding/mcp/internal/stream/McpProxyLifecycleFactory.java @@ -1290,7 +1290,11 @@ private void onClientAbort( settleRequests(traceId); doClientAbort(traceId); server.clients.remove(routedId, this); - if (!(server.hydration && sessionId == null)) + if (server.hydration && sessionId == null) + { + settleLifecycle(traceId); + } + else { server.doServerAbort(traceId); } @@ -1338,16 +1342,13 @@ private void onClientReset( server.clients.remove(routedId, this); final boolean bearer = extension.sizeof() > 0; - if (!(server.hydration && sessionId == null)) + if (server.hydration && sessionId == null || bearer) { - if (bearer) - { - settleLifecycle(traceId); - } - else - { - server.doServerReset(traceId, extension); - } + settleLifecycle(traceId); + } + else + { + server.doServerReset(traceId, extension); } } }