diff --git a/package.json b/package.json index 39a3d8b..d92af3f 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "@types/roarr": "^2.14.2", "@types/set-interval-async": "^1.0.0", "es6-error": "^4.1.1", - "roarr": "^2.15.4" + "roarr": "^2.15.4", + "serialize-error": "^7.0.1" }, "description": "Database-agnostic task scheduler.", "devDependencies": { diff --git a/src/factories/createPlanton.ts b/src/factories/createPlanton.ts index 4f839a2..7450200 100644 --- a/src/factories/createPlanton.ts +++ b/src/factories/createPlanton.ts @@ -1,4 +1,7 @@ import delay from 'delay'; +import { + serializeError, +} from 'serialize-error'; import Logger from '../Logger'; import { UnexpectedTaskInstructionsError, @@ -120,6 +123,11 @@ const createPlanton = (configuration: PlantonConfigurationInput): Planton => { limit: concurrency - activeTaskInstructions.length, }); } catch (error) { + log.error({ + error: serializeError(error), + taskName: task.name, + }, 'scheduler produced an error'); + events.emit('error', { error, taskName: task.name || '', @@ -134,6 +142,11 @@ const createPlanton = (configuration: PlantonConfigurationInput): Planton => { taskName: task.name || '', }); + log.error({ + taskInstructions, + taskName: task.name, + }, 'scheduler produced an unexpected result; result is not array'); + taskInstructions = []; } @@ -144,6 +157,11 @@ const createPlanton = (configuration: PlantonConfigurationInput): Planton => { taskName: task.name || '', }); + log.error({ + taskInstructions, + taskName: task.name, + }, 'scheduler produced an unexpected result; array members are not string'); + taskInstructions = []; break;