gRPC C++ server streaming reactor: OnWriteDone not triggered promptly after client abort

16 views
Skip to first unread message

Ajit Singh

unread,
Jan 27, 2026, 2:33:21 PM (3 days ago) Jan 27
to grp...@googlegroups.com
Hi gRPC team,

I opened a GitHub issue here: https://github.com/grpc/grpc/issues/41492

Summary: In a C++ server-streaming WriteReactor, if the client aborts (grpc-web via Envoy) while a write is in-flight, OnWriteDone(false) is not invoked until ~300s later. During this time, the stream blocks and can stall subsequent streams on the same HTTP/2 connection.

This behavior is currently blocking multiple time-critical customer workflows for us, so we’re trying to understand whether this is expected or if there’s a better-supported pattern.

We verified:
  • StartWrite() was called
  • Client abort occurs
  • OnWriteDone(false) fires only after Envoy’s ~300s idle timeout
Question: Is this delayed OnWriteDone behavior expected per gRPC C++ reactor semantics, or should client cancellation trigger immediate completion of in-flight writes? Is there another mechanism I can use to enable OnWriteDone failure sooner?

Thanks — happy to provide logs or a minimal repro if useful.
Reply all
Reply to author
Forward
0 new messages