balderdashy/sails · error

`headers` must be passed to res.writeHead() as an object. Go

Error message

`headers` must be passed to res.writeHead() as an object. Got: '+util.inspect(newHeaders, false, null)

What it means

Error "`headers` must be passed to res.writeHead() as an object. Got: '+util.inspect(newHeaders, false, null)" thrown in balderdashy/sails.

Source

Thrown at lib/router/res.js:124

    var newHeaders = (function (){
      if (arguments[2] && _.isObject(arguments[2])) {
        return arguments[2];
      }
      return arguments[1];
    })();

    if (!statusCode) {
      throw new Error('`statusCode` must be passed to res.writeHead().');
    }
    // Set status code
    res.statusCode = statusCode;

    // Ensure `._headers` have been merged into `.headers`
    _.extend(res.headers, res._headers);

    if (newHeaders) {
      if (!_.isObject(newHeaders)) {
        throw new Error('`headers` must be passed to res.writeHead() as an object. Got: '+util.inspect(newHeaders, false, null));
      }
      // Set new headers
      _.extend(res.headers, newHeaders);
    }

    // Set status code and headers on the `_clientRes` stream so they are accessible
    // to the provider of that stream.
    // (this has to happen in `send()` because the code/headers might have just changed)
    if (res._clientRes) {
      // console.log('Setting headers on clientRes- res.headers = ',res.headers);
      res._clientRes.headers = res.headers;
      res._clientRes.statusCode = res.statusCode;
    }

  };


  // Wrap res.write() and res.end() to get them to call writeHead()

View on GitHub (pinned to 7b76422cc2)

When it happens

Trigger: Thrown at lib/router/res.js:124 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of balderdashy/sails@7b76422cc2 (2026-09-01). Data as JSON: /api/errors/940e135d0ee2e3b6. Report an issue: GitHub.