simple-get icon indicating copy to clipboard operation
simple-get copied to clipboard

HTTP 500 response not returned with Node.js 14 and concat

Open arachnetech opened this issue 4 years ago • 1 comments

After upgrading to Node.js 14, I do not receive HTTP 500 responses with code of the form:

get.concat('http://example.com', function (err, res, data) {
} );

This can be fixed by checking explicitly for res.statusCode != 200 in simple-get's concat function, i.e.

simpleGet.concat = (opts, cb) => {
  return simpleGet(opts, (err, res) => {
    if (err) return cb(err)
    if (res.statusCode != 200) return cb(null,res)   // <---- added line
    concat(res, (err, data) => {

It appears that a change in Node.js 14 means that the stream end event is no-longer called in this situation, so simple-concat never returns output.

arachnetech avatar May 12 '21 07:05 arachnetech

See #66, I added some test coverage to validate that this behavior continues to work in Node 14. It would be really unexpected for http to change stream handling to change based on a status code, that's a higher (user) level concern.

If you could share runnable code that might help identify your issue.

bendrucker avatar May 12 '21 17:05 bendrucker