n8n 2.35.2 → 2.35.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { Logger } from '@n8n/backend-common';
2
2
  import { WorkflowHistoryRepository, WorkflowPublicationOutbox, WorkflowPublishedVersionRepository, WorkflowRepository } from '@n8n/db';
3
3
  import type { PublicationResult } from '../../workflows/publication/publication-result';
4
- import { WorkflowTriggerActivator } from '../../workflows/triggers/workflow-trigger-activator';
4
+ import { WorkflowTriggerActivator, type TriggerOperationAbort } from '../../workflows/triggers/workflow-trigger-activator';
5
5
  import { WorkflowPublishedDataService } from '../../workflows/workflow-published-data.service';
6
6
  export declare class WorkflowPublicationApplier {
7
7
  private readonly logger;
@@ -11,7 +11,7 @@ export declare class WorkflowPublicationApplier {
11
11
  private readonly workflowTriggerActivator;
12
12
  private readonly workflowPublishedDataService;
13
13
  constructor(logger: Logger, workflowRepository: WorkflowRepository, workflowHistoryRepository: WorkflowHistoryRepository, workflowPublishedVersionRepository: WorkflowPublishedVersionRepository, workflowTriggerActivator: WorkflowTriggerActivator, workflowPublishedDataService: WorkflowPublishedDataService);
14
- apply(record: WorkflowPublicationOutbox): Promise<PublicationResult>;
14
+ apply(record: WorkflowPublicationOutbox, abort: TriggerOperationAbort): Promise<PublicationResult>;
15
15
  private publish;
16
16
  private unpublish;
17
17
  private classifyActivationOutcome;
@@ -33,18 +33,18 @@ let WorkflowPublicationApplier = class WorkflowPublicationApplier {
33
33
  this.workflowPublishedDataService = workflowPublishedDataService;
34
34
  this.logger = this.logger.scoped('workflow-publication');
35
35
  }
36
- async apply(record) {
36
+ async apply(record, abort) {
37
37
  const { workflow, oldVersion, newVersion } = await this.resolveVersions(record);
38
38
  if (!workflow)
39
39
  return { type: 'skipped', reason: 'workflow-not-found' };
40
40
  if (workflow.activeVersionId === null) {
41
- return await this.unpublish(workflow, oldVersion, record);
41
+ return await this.unpublish(workflow, oldVersion, record, abort);
42
42
  }
43
43
  if (!newVersion)
44
44
  return { type: 'version-missing' };
45
- return await this.publish(workflow, oldVersion, newVersion, record);
45
+ return await this.publish(workflow, oldVersion, newVersion, record, abort);
46
46
  }
47
- async publish(workflow, oldVersion, newVersion, record) {
47
+ async publish(workflow, oldVersion, newVersion, record, abort) {
48
48
  const oldTriggerNodes = this.workflowTriggerActivator.getEnabledTriggerNodes(oldVersion);
49
49
  const desiredTriggerNodes = this.workflowTriggerActivator.getEnabledTriggerNodes(newVersion);
50
50
  const triggerKinds = this.workflowTriggerActivator.getTriggerKinds(desiredTriggerNodes);
@@ -70,14 +70,16 @@ let WorkflowPublicationApplier = class WorkflowPublicationApplier {
70
70
  }),
71
71
  };
72
72
  }
73
+ abort.signal.throwIfAborted();
73
74
  if (toRemove.size > 0 && oldVersion) {
74
- await this.workflowTriggerActivator.deactivate(workflow, oldVersion, toRemove);
75
+ await this.workflowTriggerActivator.deactivate(workflow, oldVersion, toRemove, abort);
75
76
  }
76
77
  await this.advancePublishedVersion(record);
77
78
  try {
79
+ abort.signal.throwIfAborted();
78
80
  if (toAdd.size > 0) {
79
81
  const activationMode = ACTIVATION_MODE_BY_REASON[record.reason ?? db_1.WorkflowPublicationReason.Publish];
80
- const outcome = await this.workflowTriggerActivator.activate(workflow, newVersion, toAdd, activationMode);
82
+ const outcome = await this.workflowTriggerActivator.activate(workflow, newVersion, toAdd, activationMode, abort);
81
83
  return this.classifyActivationOutcome(outcome, desiredTriggerNodes, triggerKinds);
82
84
  }
83
85
  if (toRemove.size > 0) {
@@ -95,10 +97,11 @@ let WorkflowPublicationApplier = class WorkflowPublicationApplier {
95
97
  }),
96
98
  };
97
99
  }
98
- async unpublish(workflow, oldVersion, record) {
100
+ async unpublish(workflow, oldVersion, record, abort) {
99
101
  const toRemove = new Set(this.workflowTriggerActivator.getEnabledTriggerNodes(oldVersion).map((node) => node.id));
100
102
  if (oldVersion && toRemove.size > 0) {
101
- await this.workflowTriggerActivator.deactivate(workflow, oldVersion, toRemove);
103
+ abort.signal.throwIfAborted();
104
+ await this.workflowTriggerActivator.deactivate(workflow, oldVersion, toRemove, abort);
102
105
  }
103
106
  await this.workflowPublishedDataService.invalidateCache(record.workflowId);
104
107
  await this.workflowPublishedVersionRepository.removePublishedVersion(record.workflowId);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-publication-applier.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-applier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-publication-applier.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-applier.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ export declare class WorkflowPublicationOutboxConsumer {
32
32
  drainPending(): Promise<number>;
33
33
  private runDrain;
34
34
  private shouldKeepPolling;
35
- processRecord(record: WorkflowPublicationOutbox): Promise<void>;
35
+ private processRecordWithAbort;
36
+ private raceTimeout;
37
+ processRecord(record: WorkflowPublicationOutbox, signal: AbortSignal): Promise<void>;
36
38
  private toOutcomeLabels;
37
39
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WorkflowPublicationOutboxConsumer = void 0;
13
13
  const backend_common_1 = require("@n8n/backend-common");
14
14
  const config_1 = require("@n8n/config");
15
+ const constants_1 = require("@n8n/constants");
15
16
  const db_1 = require("@n8n/db");
16
17
  const decorators_1 = require("@n8n/decorators");
17
18
  const di_1 = require("@n8n/di");
@@ -22,6 +23,10 @@ const event_service_1 = require("../../events/event.service");
22
23
  const publication_status_reporter_1 = require("../../workflows/publication/publication-status-reporter");
23
24
  const workflow_publication_lifecycle_lock_1 = require("../../workflows/publication/workflow-publication-lifecycle-lock");
24
25
  const workflow_publication_applier_1 = require("../../workflows/publication/workflow-publication-applier");
26
+ const TIMED_OUT = Symbol('timed-out');
27
+ const ABORT_AFTER_LEASE_FRACTION = 0.7;
28
+ const ABANDON_GRACE_MS = 10 * constants_1.Time.seconds.toMilliseconds;
29
+ const ABANDON_GRACE_LEASE_FRACTION = 0.25;
25
30
  let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer {
26
31
  constructor(logger, workflowsConfig, errorReporter, outboxRepository, applier, reporter, instanceSettings, lifecycleLock, tracing, eventService) {
27
32
  this.logger = logger;
@@ -116,19 +121,19 @@ let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer
116
121
  attributes: { 'n8n.publication.consumer_concurrency': concurrency },
117
122
  }, async (span) => {
118
123
  let processed = 0;
119
- let aborted = false;
124
+ let workerFailed = false;
120
125
  const runWorker = async () => {
121
- while (!aborted && this.shouldKeepPolling()) {
126
+ while (!workerFailed && this.shouldKeepPolling()) {
122
127
  const record = await this.outboxRepository.claimNextPendingRecord();
123
128
  if (!record)
124
129
  break;
125
- await this.processRecord(record);
126
- processed++;
130
+ if (await this.processRecordWithAbort(record))
131
+ processed++;
127
132
  }
128
133
  };
129
134
  const workerTasks = Array.from({ length: concurrency }, async () => {
130
135
  await runWorker().catch((error) => {
131
- aborted = true;
136
+ workerFailed = true;
132
137
  throw error;
133
138
  });
134
139
  });
@@ -144,7 +149,36 @@ let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer
144
149
  shouldKeepPolling() {
145
150
  return this.isPolling && !this.isShuttingDown;
146
151
  }
147
- async processRecord(record) {
152
+ async processRecordWithAbort(record) {
153
+ const leaseMs = this.workflowsConfig.publicationOutboxLeaseSeconds * constants_1.Time.seconds.toMilliseconds;
154
+ const abortAfterMs = leaseMs * ABORT_AFTER_LEASE_FRACTION;
155
+ const abandonGraceMs = Math.min(ABANDON_GRACE_MS, leaseMs * ABANDON_GRACE_LEASE_FRACTION);
156
+ const controller = new AbortController();
157
+ const work = this.processRecord(record, controller.signal);
158
+ if ((await this.raceTimeout(work, abortAfterMs)) !== TIMED_OUT)
159
+ return true;
160
+ controller.abort(new n8n_workflow_1.OperationalError('Workflow publication processing exceeded its deadline'));
161
+ if ((await this.raceTimeout(work, abandonGraceMs)) !== TIMED_OUT)
162
+ return true;
163
+ void work.catch((error) => this.errorReporter.error((0, ensure_error_1.ensureError)(error), { shouldBeLogged: true }));
164
+ this.errorReporter.error(new n8n_workflow_1.OperationalError('Abandoned workflow publication outbox record: processing did not stop after abort', { extra: { outboxId: record.id, workflowId: record.workflowId } }), { shouldBeLogged: true });
165
+ return false;
166
+ }
167
+ async raceTimeout(promise, timeoutMs) {
168
+ let timer;
169
+ try {
170
+ return await Promise.race([
171
+ promise,
172
+ new Promise((resolve) => {
173
+ timer = setTimeout(() => resolve(TIMED_OUT), timeoutMs);
174
+ }),
175
+ ]);
176
+ }
177
+ finally {
178
+ clearTimeout(timer);
179
+ }
180
+ }
181
+ async processRecord(record, signal) {
148
182
  await this.tracing.startSpan({
149
183
  name: 'Publication outbox record',
150
184
  op: 'publication.outbox.process_record',
@@ -163,6 +197,13 @@ let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer
163
197
  });
164
198
  return;
165
199
  }
200
+ if (signal.aborted) {
201
+ this.logger.debug('Skipped applying publication outbox record: aborted', {
202
+ outboxId: record.id,
203
+ workflowId: record.workflowId,
204
+ });
205
+ return;
206
+ }
166
207
  this.logger.debug('Started processing workflow publication outbox record', {
167
208
  outboxId: record.id,
168
209
  workflowId: record.workflowId,
@@ -170,14 +211,21 @@ let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer
170
211
  });
171
212
  const startedAt = Date.now();
172
213
  let result;
214
+ const detachedWork = [];
215
+ const abort = {
216
+ signal,
217
+ onDetached: (work) => detachedWork.push(work),
218
+ };
173
219
  try {
174
- result = await this.applier.apply(record);
220
+ result = await this.applier.apply(record, abort);
175
221
  }
176
222
  catch (error) {
177
223
  const cause = (0, ensure_error_1.ensureError)(error);
178
224
  result = {
179
225
  type: 'failed',
180
- error: new n8n_workflow_1.UnexpectedError(`Unexpected: ${cause.message}`, { cause }),
226
+ error: signal.aborted
227
+ ? cause
228
+ : new n8n_workflow_1.UnexpectedError(`Unexpected: ${cause.message}`, { cause }),
181
229
  };
182
230
  }
183
231
  let reporterFailed = false;
@@ -198,6 +246,10 @@ let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer
198
246
  result: result.type,
199
247
  });
200
248
  span.setAttribute('n8n.publication.result', result.type);
249
+ if (detachedWork.length > 0) {
250
+ this.logger.warn('Keeping workflow publication lock held until abandoned trigger operations settle', { outboxId: record.id, workflowId: record.workflowId });
251
+ await Promise.allSettled(detachedWork);
252
+ }
201
253
  });
202
254
  span.setStatus({ code: 1 });
203
255
  });
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-publication-outbox-consumer.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-outbox-consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-publication-outbox-consumer.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-outbox-consumer.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export declare const isTransientActivationError: (error: Error) => boolean;
2
- export declare function retryTriggerActivation(activate: () => Promise<void>, maxAttempts: number): Promise<void>;
2
+ export declare function retryTriggerActivation(activate: () => Promise<void>, maxAttempts: number, signal: AbortSignal): Promise<void>;
@@ -8,17 +8,18 @@ const n8n_workflow_1 = require("n8n-workflow");
8
8
  const constants_1 = require("../../constants");
9
9
  const isTransientActivationError = (error) => !(error instanceof n8n_workflow_1.WebhookPathTakenError);
10
10
  exports.isTransientActivationError = isTransientActivationError;
11
- async function retryTriggerActivation(activate, maxAttempts) {
11
+ async function retryTriggerActivation(activate, maxAttempts, signal) {
12
12
  for (let attempt = 0;; attempt++) {
13
+ signal.throwIfAborted();
13
14
  try {
14
15
  await activate();
15
16
  return;
16
17
  }
17
18
  catch (error) {
18
19
  const isLastAttempt = attempt >= maxAttempts - 1;
19
- if (!(0, exports.isTransientActivationError)((0, ensure_error_1.ensureError)(error)) || isLastAttempt)
20
+ if (!(0, exports.isTransientActivationError)((0, ensure_error_1.ensureError)(error)) || isLastAttempt || signal.aborted)
20
21
  throw error;
21
- await (0, sleep_1.sleep)(Math.min(constants_1.WORKFLOW_REACTIVATE_INITIAL_TIMEOUT * 2 ** attempt, constants_1.WORKFLOW_REACTIVATE_MAX_TIMEOUT));
22
+ await (0, sleep_1.sleep)(Math.min(constants_1.WORKFLOW_REACTIVATE_INITIAL_TIMEOUT * 2 ** attempt, constants_1.WORKFLOW_REACTIVATE_MAX_TIMEOUT), signal);
22
23
  }
23
24
  }
24
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trigger-activation-retry.js","sourceRoot":"","sources":["../../../src/workflows/triggers/trigger-activation-retry.ts"],"names":[],"mappings":";;;;AAAA,iEAA6D;AAC7D,4CAAyC;AACzC,+CAAqD;AAErD,2CAAmG;AAK5F,MAAM,0BAA0B,GAAG,CAAC,KAAY,EAAW,EAAE,CACnE,CAAC,CAAC,KAAK,YAAY,oCAAqB,CAAC,CAAC;AAD9B,QAAA,0BAA0B,GAA1B,0BAA0B,CACI;AASpC,KAAK,iCACX,QAA6B,EAC7B,WAAmB;IAEnB,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC;YACJ,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,aAAa,GAAG,OAAO,IAAI,WAAW,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,IAAA,QAAA,0BAA0B,EAAC,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC,IAAI,aAAa;gBAAE,MAAM,KAAK,CAAC;YAElF,MAAM,IAAA,aAAK,EACV,IAAI,CAAC,GAAG,CACP,+CAAmC,GAAG,CAAC,IAAI,OAAO,EAClD,2CAA+B,CAC/B,CACD,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"trigger-activation-retry.js","sourceRoot":"","sources":["../../../src/workflows/triggers/trigger-activation-retry.ts"],"names":[],"mappings":";;;;AAAA,iEAA6D;AAC7D,4CAAyC;AACzC,+CAAqD;AAErD,2CAAmG;AAK5F,MAAM,0BAA0B,GAAG,CAAC,KAAY,EAAW,EAAE,CACnE,CAAC,CAAC,KAAK,YAAY,oCAAqB,CAAC,CAAC;AAD9B,QAAA,0BAA0B,GAA1B,0BAA0B,CACI;AAWpC,KAAK,iCACX,QAA6B,EAC7B,WAAmB,EACnB,MAAmB;IAEnB,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QACnC,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC;YACJ,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,aAAa,GAAG,OAAO,IAAI,WAAW,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,IAAA,QAAA,0BAA0B,EAAC,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC,IAAI,aAAa,IAAI,MAAM,CAAC,OAAO;gBACrF,MAAM,KAAK,CAAC;YAKb,MAAM,IAAA,aAAK,EACV,IAAI,CAAC,GAAG,CACP,+CAAmC,GAAG,CAAC,IAAI,OAAO,EAClD,2CAA+B,CAC/B,EACD,MAAM,CACN,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -16,6 +16,10 @@ export type WorkflowTriggerVersion = {
16
16
  nodes: INode[];
17
17
  connections: IConnections;
18
18
  };
19
+ export interface TriggerOperationAbort {
20
+ signal: AbortSignal;
21
+ onDetached: (work: Promise<unknown>) => void;
22
+ }
19
23
  export type TriggerActivationFailure = {
20
24
  nodeId: INode['id'];
21
25
  nodeName: string;
@@ -45,9 +49,9 @@ export declare class WorkflowTriggerActivator {
45
49
  getUnregisteredNonWebhookTriggerNodeIds(workflowId: WorkflowId, desiredNodes: INode[]): Set<INode['id']>;
46
50
  getNodesWithUnregisteredWebhooks(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion): Promise<Set<INode['id']>>;
47
51
  private getNonWebhookTriggerNodeIds;
48
- activate(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion, nodeIds: Set<INode['id']>, activationMode: WorkflowActivateMode): Promise<TriggerActivationOutcome>;
52
+ activate(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion, nodeIds: Set<INode['id']>, activationMode: WorkflowActivateMode, abort: TriggerOperationAbort): Promise<TriggerActivationOutcome>;
49
53
  private activateInternal;
50
- deactivate(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion, nodeIds: Set<INode['id']>): Promise<void>;
54
+ deactivate(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion, nodeIds: Set<INode['id']>, abort: TriggerOperationAbort): Promise<void>;
51
55
  private deactivateInternal;
52
56
  updateTriggerCount(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion): Promise<void>;
53
57
  private emitTriggerOperation;
@@ -66,6 +66,29 @@ const trigger_count_service_1 = require("../../workflows/triggers/trigger-count.
66
66
  const trigger_execution_context_factory_1 = require("../../workflows/triggers/trigger-execution-context.factory");
67
67
  const webhook_trigger_registrar_1 = require("../../workflows/triggers/webhook-trigger-registrar");
68
68
  const workflow_static_data_service_1 = require("../../workflows/workflow-static-data.service");
69
+ async function raceAbort(promise, abort) {
70
+ const { signal } = abort;
71
+ if (signal.aborted) {
72
+ abort.onDetached(promise);
73
+ throw (0, ensure_error_1.ensureError)(signal.reason);
74
+ }
75
+ let onAbort;
76
+ const aborted = new Promise((_resolve, reject) => {
77
+ onAbort = () => reject((0, ensure_error_1.ensureError)(signal.reason));
78
+ signal.addEventListener('abort', onAbort, { once: true });
79
+ });
80
+ try {
81
+ return await Promise.race([promise, aborted]);
82
+ }
83
+ catch (error) {
84
+ if (signal.aborted)
85
+ abort.onDetached(promise);
86
+ throw error;
87
+ }
88
+ finally {
89
+ signal.removeEventListener('abort', onAbort);
90
+ }
91
+ }
69
92
  const PSEUDO_TRIGGER_NODE_TYPES = new Set([
70
93
  n8n_workflow_1.MANUAL_TRIGGER_NODE_TYPE,
71
94
  n8n_workflow_1.EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,
@@ -152,10 +175,10 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
152
175
  });
153
176
  return [...workflow.getTriggerNodes(), ...workflow.getPollNodes()].map((node) => node.id);
154
177
  }
155
- async activate(dbWorkflow, version, nodeIds, activationMode) {
178
+ async activate(dbWorkflow, version, nodeIds, activationMode, abort) {
156
179
  const startedAt = Date.now();
157
180
  try {
158
- const outcome = await this.activateInternal(dbWorkflow, version, nodeIds, activationMode);
181
+ const outcome = await this.activateInternal(dbWorkflow, version, nodeIds, activationMode, abort);
159
182
  this.emitTriggerOperation('activate', outcome.failures.length === 0 ? 'success' : 'failure', startedAt);
160
183
  this.emitTriggerNodeOperations('activate', outcome.activated.length, outcome.failures.length);
161
184
  return outcome;
@@ -165,7 +188,7 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
165
188
  throw error;
166
189
  }
167
190
  }
168
- async activateInternal(dbWorkflow, version, nodeIds, activationMode) {
191
+ async activateInternal(dbWorkflow, version, nodeIds, activationMode, abort) {
169
192
  return await this.tracing.startSpan({
170
193
  name: 'Trigger activation',
171
194
  op: 'publication.trigger.activate',
@@ -186,8 +209,8 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
186
209
  try {
187
210
  const resolveWorkflowData = this.createWorkflowDataResolver(dbWorkflow);
188
211
  const phaseResults = await Promise.allSettled([
189
- this.registerWebhookTriggers(workflow, additionalData, nodeIds, outcome, activationMode),
190
- this.registerNonWebhookTriggers(dbWorkflow, workflow, additionalData, resolveWorkflowData, nodeIds, outcome, activationMode),
212
+ this.registerWebhookTriggers(workflow, additionalData, nodeIds, outcome, activationMode, abort),
213
+ this.registerNonWebhookTriggers(dbWorkflow, workflow, additionalData, resolveWorkflowData, nodeIds, outcome, activationMode, abort),
191
214
  ]);
192
215
  this.throwRejectedPhaseError(phaseResults);
193
216
  triggerCount = this.triggerCountService.count(workflow, additionalData);
@@ -208,12 +231,12 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
208
231
  return outcome;
209
232
  });
210
233
  }
211
- async deactivate(dbWorkflow, version, nodeIds) {
234
+ async deactivate(dbWorkflow, version, nodeIds, abort) {
212
235
  if (nodeIds.size === 0)
213
236
  return;
214
237
  const startedAt = Date.now();
215
238
  try {
216
- await this.deactivateInternal(dbWorkflow, version, nodeIds);
239
+ await this.deactivateInternal(dbWorkflow, version, nodeIds, abort);
217
240
  this.emitTriggerOperation('deactivate', 'success', startedAt);
218
241
  this.emitTriggerNodeOperations('deactivate', nodeIds.size, 0);
219
242
  }
@@ -223,7 +246,7 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
223
246
  throw error;
224
247
  }
225
248
  }
226
- async deactivateInternal(dbWorkflow, version, nodeIds) {
249
+ async deactivateInternal(dbWorkflow, version, nodeIds, abort) {
227
250
  await this.tracing.startSpan({
228
251
  name: 'Trigger deactivation',
229
252
  op: 'publication.trigger.deactivate',
@@ -239,8 +262,8 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
239
262
  workflowSettings: dbWorkflow.settings,
240
263
  });
241
264
  const phaseResults = await Promise.allSettled([
242
- this.deregisterWebhookTriggers(workflow, additionalData, nodeIds).then(async (removedNodeNames) => await this.webhookTriggerRegistrar.clearWorkflowWebhooksForNodes(dbWorkflow.id, removedNodeNames)),
243
- this.deregisterNonWebhookTriggers(dbWorkflow.id, workflow, nodeIds),
265
+ this.deregisterWebhookTriggers(workflow, additionalData, nodeIds, abort),
266
+ this.deregisterNonWebhookTriggers(dbWorkflow.id, workflow, nodeIds, abort),
244
267
  ]);
245
268
  this.throwRejectedPhaseError(phaseResults);
246
269
  span.setStatus({ code: 1 });
@@ -310,9 +333,9 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
310
333
  settings: dbWorkflow.settings,
311
334
  });
312
335
  }
313
- async registerWebhookTriggers(workflow, additionalData, nodeIds, outcome, activationMode) {
336
+ async registerWebhookTriggers(workflow, additionalData, nodeIds, outcome, activationMode, abort) {
314
337
  const webhooksByNode = this.groupWebhookTriggersByNode(workflow, additionalData, nodeIds);
315
- const tasks = [...webhooksByNode].map(async ([nodeId, { nodeName, webhooks }]) => await this.registerWebhookTriggersForNode(workflow, nodeId, nodeName, webhooks, activationMode));
338
+ const tasks = [...webhooksByNode].map(async ([nodeId, { nodeName, webhooks }]) => await this.registerWebhookTriggersForNode(workflow, nodeId, nodeName, webhooks, activationMode, abort));
316
339
  for (const result of await Promise.all(tasks)) {
317
340
  if (result.ok)
318
341
  outcome.activated.push(result.result.nodeId);
@@ -320,15 +343,15 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
320
343
  outcome.failures.push(result.error);
321
344
  }
322
345
  }
323
- async registerWebhookTriggersForNode(workflow, nodeId, nodeName, webhooks, activationMode) {
346
+ async registerWebhookTriggersForNode(workflow, nodeId, nodeName, webhooks, activationMode, abort) {
324
347
  try {
325
348
  for (const webhookData of webhooks) {
326
- await (0, trigger_activation_retry_1.retryTriggerActivation)(async () => await this.webhookTriggerRegistrar.register({
349
+ await raceAbort((0, trigger_activation_retry_1.retryTriggerActivation)(async () => await this.webhookTriggerRegistrar.register({
327
350
  workflow,
328
351
  webhookData,
329
352
  mode: 'trigger',
330
353
  activation: activationMode,
331
- }), constants_1.TRIGGER_ACTIVATION_MAX_ATTEMPTS);
354
+ }), constants_1.TRIGGER_ACTIVATION_MAX_ATTEMPTS, abort.signal), abort);
332
355
  }
333
356
  return (0, result_1.createResultOk)({ nodeId });
334
357
  }
@@ -348,21 +371,35 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
348
371
  }
349
372
  return grouped;
350
373
  }
351
- async deregisterWebhookTriggers(workflow, additionalData, nodeIds) {
374
+ async deregisterWebhookTriggers(workflow, additionalData, nodeIds, abort) {
352
375
  const removedNodeNames = [];
376
+ let firstFailure;
353
377
  await workflow.expression.acquireIsolate();
354
378
  try {
355
379
  const webhooks = this.getWebhookTriggersForNodeIds(workflow, additionalData, nodeIds);
356
- const deregistrationResults = await Promise.allSettled(webhooks.map(async (webhookData) => await this.webhookTriggerRegistrar.deregister({ workflow, webhookData })));
357
- for (const result of deregistrationResults) {
358
- if (result.status === 'rejected')
359
- throw (0, ensure_error_1.ensureError)(result.reason);
360
- removedNodeNames.push(result.value);
380
+ const deregistrationResults = await Promise.allSettled(webhooks.map(async (webhookData) => await raceAbort(this.webhookTriggerRegistrar.deregister({ workflow, webhookData }), abort)));
381
+ const pendingWebhooksByNode = new Map();
382
+ for (const webhookData of webhooks) {
383
+ pendingWebhooksByNode.set(webhookData.node, (pendingWebhooksByNode.get(webhookData.node) ?? 0) + 1);
361
384
  }
385
+ deregistrationResults.forEach((result, index) => {
386
+ if (result.status === 'rejected') {
387
+ firstFailure ??= (0, ensure_error_1.ensureError)(result.reason);
388
+ return;
389
+ }
390
+ const nodeName = webhooks[index].node;
391
+ const pending = (pendingWebhooksByNode.get(nodeName) ?? 0) - 1;
392
+ pendingWebhooksByNode.set(nodeName, pending);
393
+ if (pending === 0)
394
+ removedNodeNames.push(nodeName);
395
+ });
362
396
  }
363
397
  finally {
364
398
  await workflow.expression.releaseIsolate();
365
399
  }
400
+ await this.webhookTriggerRegistrar.clearWorkflowWebhooksForNodes(workflow.id, removedNodeNames);
401
+ if (firstFailure)
402
+ throw firstFailure;
366
403
  await this.workflowStaticDataService.saveStaticData(workflow);
367
404
  return removedNodeNames;
368
405
  }
@@ -371,7 +408,7 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
371
408
  .getWebhookTriggers(workflow, additionalData)
372
409
  .filter((webhookData) => nodeIds.has(workflow.getNode(webhookData.node)?.id ?? ''));
373
410
  }
374
- async registerNonWebhookTriggers(dbWorkflow, workflow, additionalData, resolveWorkflowData, nodeIds, outcome, activationMode) {
411
+ async registerNonWebhookTriggers(dbWorkflow, workflow, additionalData, resolveWorkflowData, nodeIds, outcome, activationMode, abort) {
375
412
  const triggerNodeIds = this.getNonWebhookTriggerNodeIdsForNodeIds(workflow, nodeIds);
376
413
  if (triggerNodeIds.length === 0)
377
414
  return;
@@ -394,7 +431,7 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
394
431
  });
395
432
  const results = await Promise.all(triggerNodeIds.map(async (nodeId) => {
396
433
  try {
397
- await (0, trigger_activation_retry_1.retryTriggerActivation)(async () => await this.nonWebhookTriggerRegistrar.register(workflow, registration, nodeId), constants_1.TRIGGER_ACTIVATION_MAX_ATTEMPTS);
434
+ await raceAbort((0, trigger_activation_retry_1.retryTriggerActivation)(async () => await this.nonWebhookTriggerRegistrar.register(workflow, registration, nodeId), constants_1.TRIGGER_ACTIVATION_MAX_ATTEMPTS, abort.signal), abort);
398
435
  return (0, result_1.createResultOk)(nodeId);
399
436
  }
400
437
  catch (error) {
@@ -421,9 +458,9 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
421
458
  }
422
459
  return nodeId;
423
460
  }
424
- async deregisterNonWebhookTriggers(workflowId, workflow, nodeIds) {
461
+ async deregisterNonWebhookTriggers(workflowId, workflow, nodeIds, abort) {
425
462
  const triggerNodeIds = this.getNonWebhookTriggerNodeIdsForNodeIds(workflow, nodeIds);
426
- await Promise.all(triggerNodeIds.map(async (nodeId) => await this.nonWebhookTriggerRegistrar.deregister(workflowId, nodeId)));
463
+ await Promise.all(triggerNodeIds.map(async (nodeId) => await raceAbort(this.nonWebhookTriggerRegistrar.deregister(workflowId, nodeId), abort)));
427
464
  }
428
465
  getNonWebhookTriggerNodeIdsForNodeIds(workflow, nodeIds) {
429
466
  return this.nonWebhookTriggerRegistrar
@@ -457,7 +494,7 @@ let WorkflowTriggerActivator = class WorkflowTriggerActivator {
457
494
  finally {
458
495
  await workflow.expression.releaseIsolate();
459
496
  }
460
- }, constants_1.TRIGGER_ACTIVATION_MAX_ATTEMPTS);
497
+ }, constants_1.TRIGGER_ACTIVATION_MAX_ATTEMPTS, new AbortController().signal);
461
498
  await this.workflowStaticDataService.saveStaticData(workflow);
462
499
  await this.activationErrorsService.deregister(workflowId);
463
500
  }