Skip to content

bug: write method is not returning a boolean value #683

Description

@realityfilter

The implementation of the write method is missing a boolean return value indicating the need of drain https://github.com/CodeGenieApp/serverless-express/blob/mainline/src/response.js.

See https://nodejs.org/api/stream.html#writablewritechunk-encoding-callback

'The return value is true if the internal buffer is less than the highWaterMark configured when the stream was created after admitting chunk. If false is returned, further attempts to write data to the stream should stop until the 'drain' event is emitted.'

With newer versions of trpc (11.0.0-rc.419) this leads to a hang. The trpc middleware interprets void as false and waits for the 'drain' event that is never showing up. The lambda runtime is shutting down the event handling with an internal server error.

See https://github.com/trpc/trpc/blob/fbb4a2fb4b71d2f5ab7ee97617d951f3a92517c8/packages/server/src/adapters/node-http/nodeHTTPRequestHandler.ts#L85

In response.js the write method should return true.

See https://github.com/realityfilter/serverless-express-write-bugreport
for a test case.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions