multiparty error in parsing callback request

2.2k views Asked by At

I am using multiparty. It was working fine but suddenly it is throwing error.

Error

err: { Error: stream ended unexpectedly
    at Form.<anonymous> (/user_code/node_modules/multiparty/index.js:754:24)
    at emitNone (events.js:91:20)
    at Form.emit (events.js:185:7)
    at finishMaybe (_stream_writable.js:514:14)
    at endWritable (_stream_writable.js:524:3)
    at Form.Writable.end (_stream_writable.js:489:5)
    at onend (_stream_readable.js:511:10)
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickDomainCallback (internal/process/next_tick.js:128:9) status: 400, statusCode: 400 }

Code

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

var multiparty = require('multiparty');
var http = require('http');
var util = require('util');

exports.helloWorld = functions.https.onRequest((request, response) => {
                                               var body = "";
                                               var POST = {};
                                               var form = new multiparty.Form();
                                               form.on('error', function(err) {
                                                       console.log('Error parsing form: ' + err.stack);
                                                       });
                                               form.parse(request, function(err, fields, files) {
                                                          response.status(500).send({
                                                                                    message: err
                                                                                    });
                                                          })
                                               });
});
1

There are 1 answers

0
duncanhall On

The "stream ended unexpectedly" error implies the underlying TCP socket was closed before a complete multipart form was received.

As you say this was previously working you should check the server to which you are making the request for any errors which may be closing the response early. One common cause is the size of the response data being larger than accepted by the server or request/response headers.