diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index 57b794c11..823c947c5 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -71,6 +71,11 @@ module.exports = { handle_error(conid, database, props) { const { error } = props; logger.error(`Error in database connection ${conid}, database ${database}: ${error}`); + if (props?.msgid) { + const [resolve, reject] = this.requests[props?.msgid]; + reject(error); + delete this.requests[props?.msgid]; + } }, handle_response(conid, database, { msgid, ...response }) { const [resolve, reject] = this.requests[msgid]; diff --git a/packages/api/src/proc/databaseConnectionProcess.js b/packages/api/src/proc/databaseConnectionProcess.js index 497dc62c9..03d386d73 100644 --- a/packages/api/src/proc/databaseConnectionProcess.js +++ b/packages/api/src/proc/databaseConnectionProcess.js @@ -427,7 +427,11 @@ function start() { await handleMessage(message); } catch (err) { logger.error(extractErrorLogData(err), 'Error in DB connection'); - process.send({ msgtype: 'error', error: extractErrorMessage(err, 'Error processing message') }); + process.send({ + msgtype: 'error', + error: extractErrorMessage(err, 'Error processing message'), + msgid: message?.msgid, + }); } }); } diff --git a/packages/api/src/utility/useController.js b/packages/api/src/utility/useController.js index c3da9f677..1ad274a50 100644 --- a/packages/api/src/utility/useController.js +++ b/packages/api/src/utility/useController.js @@ -86,7 +86,7 @@ module.exports = function useController(app, electron, route, controller) { detail: err.detail, }); } else { - res.status(500).json({ apiErrorMessage: err.message }); + res.status(500).json({ apiErrorMessage: (_.isString(err) ? err : err.message) ?? 'Unknown error' }); } } });