diff --git a/lib/controller.ts b/lib/controller.ts index cf632509b..dbe177cff 100644 --- a/lib/controller.ts +++ b/lib/controller.ts @@ -144,8 +144,7 @@ class Controller { try { await this.mqtt.connect(); } catch (error) { - logger.error(`MQTT failed to connect: ${error.message}`); - logger.error('Exiting...'); + logger.error(`MQTT failed to connect, exiting...`); await this.zigbee.stop(); await this.exit(1); } diff --git a/lib/mqtt.ts b/lib/mqtt.ts index d10adeb2f..6b21cdc43 100644 --- a/lib/mqtt.ts +++ b/lib/mqtt.ts @@ -83,7 +83,10 @@ export default class MQTT { resolve(); }); - this.client.on('error', (err) => reject(err)); + this.client.on('error', (err) => { + logger.error(`MQTT error: ${err.message}`); + reject(err); + }); this.client.on('message', this.onMessage); }); } diff --git a/test/controller.test.js b/test/controller.test.js index 2896e8d22..8a18982e3 100644 --- a/test/controller.test.js +++ b/test/controller.test.js @@ -202,7 +202,8 @@ describe('Controller', () => { }); await controller.start(); await flushPromises(); - expect(logger.error).toHaveBeenCalledWith('MQTT failed to connect: addr not found'); + expect(logger.error).toHaveBeenCalledWith('MQTT error: addr not found'); + expect(logger.error).toHaveBeenCalledWith('MQTT failed to connect, exiting...'); expect(mockExit).toHaveBeenCalledTimes(1); expect(mockExit).toHaveBeenCalledWith(1, false); });