whole_func_string: function normalizeError (err) {
  	if (err instanceof Error) {
  		return _.pickBy({
  			message: err.message,
  			stack: err.stack,
  		}, val => !_.isEmpty(val));
  	}
  
  	if (err && err.status && err.response) {
  		// this is probably a superagent error response. we definitely don't
  		// want to log the whole thing
  		return {
  			response: {
  				status: err.status,
  				responseText: _.truncate(_.trimStart(err.response ? err.response.text : "<no response body>"), 200),
  			},
  		}
  	}
  
  	return err;
  }
func_code_string: function normalizeError (err) {
  	if (err instanceof Error) {
  		return _.pickBy({
  			message: err.message,
  			stack: err.stack,
  		}, val => !_.isEmpty(val));
  	}
  
  	if (err && err.status && err.response) {
  		// this is probably a superagent error response. we definitely don't
  		// want to log the whole thing
  		return {
  			response: {
  				status: err.status,
  				responseText: _.truncate(_.trimStart(err.response ? err.response.text : "<no response body>"), 200),
  			},
  		}
  	}
  
  	return err;
  }
func_documentation_string: massage the error into a format suitable for logging