From db5524f8cedf125b5ee8eb050af451ce42897c42 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Sat, 8 Nov 2025 00:48:13 +1100 Subject: [PATCH] fix: resolve issue with sealing task on inngest (#2146) Currently on inngest the sealing task fails during decoration stating that it can not find the step "xxx" My running theory is that this was due to it being a Promise.all(map(...)) even though that isn't explicitly disallowed. This change turns it into a for loop collecting promises to be awaited after the fact. Local inngest testing looks promising. --- .../internal/seal-document.handler.ts | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/packages/lib/jobs/definitions/internal/seal-document.handler.ts b/packages/lib/jobs/definitions/internal/seal-document.handler.ts index 8a2f15f75..805855ecf 100644 --- a/packages/lib/jobs/definitions/internal/seal-document.handler.ts +++ b/packages/lib/jobs/definitions/internal/seal-document.handler.ts @@ -189,29 +189,34 @@ export const run = async ({ settings, }); - const newDocumentData = await Promise.all( - envelopeItems.map(async (envelopeItem) => - io.runTask(`decorate-${envelopeItem.id}`, async () => { - const envelopeItemFields = envelope.envelopeItems.find( - (item) => item.id === envelopeItem.id, - )?.field; + const decoratePromises: Array> = + []; - if (!envelopeItemFields) { - throw new Error(`Envelope item fields not found for envelope item ${envelopeItem.id}`); - } + for (const envelopeItem of envelopeItems) { + const task = io.runTask(`decorate-${envelopeItem.id}`, async () => { + const envelopeItemFields = envelope.envelopeItems.find( + (item) => item.id === envelopeItem.id, + )?.field; - return decorateAndSignPdf({ - envelope, - envelopeItem, - envelopeItemFields, - isRejected, - rejectionReason, - certificateData, - auditLogData, - }); - }), - ), - ); + if (!envelopeItemFields) { + throw new Error(`Envelope item fields not found for envelope item ${envelopeItem.id}`); + } + + return decorateAndSignPdf({ + envelope, + envelopeItem, + envelopeItemFields, + isRejected, + rejectionReason, + certificateData, + auditLogData, + }); + }); + + decoratePromises.push(task); + } + + const newDocumentData = await Promise.all(decoratePromises); const postHog = PostHogServerClient();