-
Notifications
You must be signed in to change notification settings - Fork 14
Ensure response stream is only closed after request stream is closed #595
Copy link
Copy link
Open
Description
Problem
When handling an invocation over HTTP, the SDK must not close the HTTP response stream before the request stream has been fully consumed/closed. If the response stream is closed while the request stream is still open, the runtime may interpret this as a connection abort and log warnings or trigger unnecessary retries.
This issue was discovered and fixed in the TypeScript SDK: restatedev/sdk-typescript#651
Expected behavior
After the SDK has flushed all output to the response stream, it should drain/await the request stream EOS (end-of-stream) before closing the response stream. This ensures a clean HTTP connection lifecycle:
- SDK finishes writing all response data
- SDK waits for the request stream to be fully closed (read until EOF or done)
- SDK closes the response stream
Action items
- Review the HTTP handler code to check if the response stream can be closed before the request stream is fully consumed
- If susceptible, implement a fix to drain the request stream before closing the response stream
- Verify with testing
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels