From e948d7a2cc6a00736aed6443f0b3f96b1ec5c87c Mon Sep 17 00:00:00 2001 From: Ben Allfree Date: Thu, 5 Dec 2024 10:17:38 +0000 Subject: [PATCH] chore: enhance error messaging --- .../src/mothership-app/pb_hooks/mothership.js | 16 +++++++++------- .../src/mothership-app/pb_hooks/versions.cjs | 1 + .../model/HandleInstanceBeforeUpdate.ts | 17 ++++++++++------- .../src/services/InstanceService/index.ts | 4 ++-- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/packages/pockethost/src/mothership-app/pb_hooks/mothership.js b/packages/pockethost/src/mothership-app/pb_hooks/mothership.js index 847619a9..1847c9ce 100644 --- a/packages/pockethost/src/mothership-app/pb_hooks/mothership.js +++ b/packages/pockethost/src/mothership-app/pb_hooks/mothership.js @@ -308,15 +308,15 @@ var HandleMigrateRegions = (e) => { var HandleInstanceBeforeUpdate = (e) => { const dao = e.dao || $app.dao(); const log = mkLog(`instances-validate-before-update`); + const id = e.model.getId(); const version = e.model.get("version"); if (!versions.includes(version)) { - throw new BadRequestError( - `Invalid version '${version}'. Version must be one of: ${versions.join( - ", " - )}` - ); + const msg = `[ERROR] Invalid version '${version}' for [${id}]. Version must be one of: ${versions.join( + ", " + )}`; + log(`${msg}`); + throw new BadRequestError(msg); } - const id = e.model.getId(); const cname = e.model.get("cname"); if (cname.length > 0) { const result = new DynamicModel({ @@ -333,7 +333,9 @@ var HandleInstanceBeforeUpdate = (e) => { return true; })(); if (inUse) { - throw new BadRequestError(`Custom domain already in use.`); + const msg = `[ERROR] [${id}] Custom domain ${cname} already in use.`; + log(`${msg}`); + throw new BadRequestError(msg); } } }; diff --git a/packages/pockethost/src/mothership-app/pb_hooks/versions.cjs b/packages/pockethost/src/mothership-app/pb_hooks/versions.cjs index b8539868..033034ce 100644 --- a/packages/pockethost/src/mothership-app/pb_hooks/versions.cjs +++ b/packages/pockethost/src/mothership-app/pb_hooks/versions.cjs @@ -1,4 +1,5 @@ module.exports = [ + "0.23.*", "0.22.*", "0.21.*", "0.20.*", diff --git a/packages/pockethost/src/mothership-app/src/lib/handlers/instance/model/HandleInstanceBeforeUpdate.ts b/packages/pockethost/src/mothership-app/src/lib/handlers/instance/model/HandleInstanceBeforeUpdate.ts index 16412296..596029fd 100644 --- a/packages/pockethost/src/mothership-app/src/lib/handlers/instance/model/HandleInstanceBeforeUpdate.ts +++ b/packages/pockethost/src/mothership-app/src/lib/handlers/instance/model/HandleInstanceBeforeUpdate.ts @@ -6,16 +6,17 @@ export const HandleInstanceBeforeUpdate = (e: core.ModelEvent) => { const log = mkLog(`instances-validate-before-update`) + const id = e.model.getId() + const version = e.model.get('version') if (!versions.includes(version)) { - throw new BadRequestError( - `Invalid version '${version}'. Version must be one of: ${versions.join( - ', ', - )}`, - ) + const msg = `[ERROR] Invalid version '${version}' for [${id}]. Version must be one of: ${versions.join( + ', ', + )}` + log(`${msg}`) + throw new BadRequestError(msg) } - const id = e.model.getId() const cname = e.model.get('cname') if (cname.length > 0) { const result = new DynamicModel({ @@ -38,7 +39,9 @@ export const HandleInstanceBeforeUpdate = (e: core.ModelEvent) => { })() if (inUse) { - throw new BadRequestError(`Custom domain already in use.`) + const msg = `[ERROR] [${id}] Custom domain ${cname} already in use.` + log(`${msg}`) + throw new BadRequestError(msg) } } } diff --git a/packages/pockethost/src/services/InstanceService/index.ts b/packages/pockethost/src/services/InstanceService/index.ts index 950a51fd..85d253aa 100644 --- a/packages/pockethost/src/services/InstanceService/index.ts +++ b/packages/pockethost/src/services/InstanceService/index.ts @@ -102,7 +102,7 @@ export const instanceService = mkSingleton( dbg(`Updated instance fields`, fields) }) .catch((e) => { - error(`Error updating instance fields`, { fields, e }) + error(`Error updating instance fields for ${id}`, { fields, e }) }) }, ) @@ -190,7 +190,7 @@ export const instanceService = mkSingleton( /** Health check */ await tryFetch(`${internalUrl}/api/health`, { preflight: async () => { - if (stopped()) throw new Error(`Container stopped`) + if (stopped()) throw new Error(`Container stopped ${id}`) return started() }, })