diff --git a/packages/server/src/api/controllers/deploy/index.ts b/packages/server/src/api/controllers/deploy/index.ts index 5d4603b864..6ef4c8f6fc 100644 --- a/packages/server/src/api/controllers/deploy/index.ts +++ b/packages/server/src/api/controllers/deploy/index.ts @@ -16,6 +16,7 @@ import { UserCtx, DeploymentStatus, DeploymentProgressResponse, + Automation, } from "@budibase/types" import sdk from "../../../sdk" import { builderSocket } from "../../../websockets" @@ -76,17 +77,24 @@ async function initDeployedApp(prodAppId: any) { const db = context.getProdAppDB() console.log("Reading automation docs") const automations = ( - await db.allDocs( + await db.allDocs( getAutomationParams(null, { include_docs: true, }) ) - ).rows.map((row: any) => row.doc) + ).rows.map(row => row.doc!) await clearMetadata() const { count } = await disableAllCrons(prodAppId) const promises = [] for (let automation of automations) { - promises.push(enableCronTrigger(prodAppId, automation)) + promises.push( + enableCronTrigger(prodAppId, automation).catch(err => { + throw new Error( + `Failed to enable CRON trigger for automation "${automation.name}": ${err.message}`, + { cause: err } + ) + }) + ) } const results = await Promise.all(promises) const enabledCount = results diff --git a/packages/server/src/automations/utils.ts b/packages/server/src/automations/utils.ts index 1fa346be19..f0492c79d8 100644 --- a/packages/server/src/automations/utils.ts +++ b/packages/server/src/automations/utils.ts @@ -182,7 +182,7 @@ export async function enableCronTrigger(appId: any, automation: Automation) { !automation.disabled ) { const inputs = trigger.inputs as CronTriggerInputs - const cronExp = inputs.cron + const cronExp = inputs.cron || "" const validation = helpers.cron.validate(cronExp) if (!validation.valid) { throw new Error(