diff --git a/lib/agent.js b/lib/agent.js index 90ebff03..b493b814 100644 --- a/lib/agent.js +++ b/lib/agent.js @@ -188,9 +188,24 @@ Agent.prototype._sendOps = function(collection, id, ops) { Agent.prototype._reply = function(request, err, message) { if (err) { - request.error = (typeof err === 'string') ? - {message: err} : - {code: err.code, message: err.message, stack: err.stack}; + if (typeof err === 'string') { + request.error = {message: err}; + } else { + if (err.stack) { + // Log stack trace on the server + var message = 'Error: ' + err.message; + if (err.code) message = message + ' (' + err.code + ')'; + console.warn(message); + console.warn(err.stack); + console.warn(); + + // Then hide stack trace from client + request.error = JSON.parse(JSON.stringify(err)); + delete request.error.stack; + } else { + request.error = err; + } + } this.send(request); return; }