diff --git a/Changes.md b/Changes.md index be2b99dcc..b0163f897 100644 --- a/Changes.md +++ b/Changes.md @@ -4,6 +4,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/). ### Unreleased +- fix(outbound): in outbound, fix a crash when socket connection errors #3456 + ### [3.1.0] - 2025-01-30 #### Changes diff --git a/outbound/client_pool.js b/outbound/client_pool.js index f1af15c38..9e916ff24 100644 --- a/outbound/client_pool.js +++ b/outbound/client_pool.js @@ -1,5 +1,7 @@ 'use strict'; +const util = require('node:util'); + const utils = require('haraka-utils'); const net_utils = require('haraka-net-utils') @@ -32,7 +34,12 @@ exports.get_client = function (mx, callback) { socket.end(); socket.removeAllListeners(); socket.destroy(); - callback(err.message, null); + const errMsg = err.message ? + err.message : + err instanceof AggregateError ? + err.map(e => e.message).join(', ') : + util.inspect(err, { depth: 3 }); + callback(errMsg, null); }) socket.once('timeout', () => {