@workflow/core 4.2.0-beta.70 → 4.2.0-beta.72
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.
- package/dist/class-serialization.d.ts +5 -1
- package/dist/class-serialization.d.ts.map +1 -1
- package/dist/class-serialization.js +6 -2
- package/dist/classify-error.d.ts +12 -0
- package/dist/classify-error.d.ts.map +1 -0
- package/dist/classify-error.js +17 -0
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +21 -1
- package/dist/runtime/constants.d.ts +2 -0
- package/dist/runtime/constants.d.ts.map +1 -0
- package/dist/runtime/constants.js +14 -0
- package/dist/runtime/helpers.d.ts.map +1 -1
- package/dist/runtime/helpers.js +18 -1
- package/dist/runtime/run.d.ts +23 -3
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +16 -3
- package/dist/runtime/runs.d.ts +1 -0
- package/dist/runtime/runs.d.ts.map +1 -1
- package/dist/runtime/runs.js +3 -3
- package/dist/runtime/start.d.ts +4 -5
- package/dist/runtime/start.d.ts.map +1 -1
- package/dist/runtime/start.js +1 -1
- package/dist/runtime/step-handler.d.ts.map +1 -1
- package/dist/runtime/step-handler.js +193 -109
- package/dist/runtime/suspension-handler.d.ts +2 -1
- package/dist/runtime/suspension-handler.d.ts.map +1 -1
- package/dist/runtime/suspension-handler.js +30 -38
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +75 -17
- package/dist/serialization-format.d.ts +9 -0
- package/dist/serialization-format.d.ts.map +1 -1
- package/dist/serialization-format.js +35 -1
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +29 -3
- package/dist/telemetry/semantic-conventions.d.ts +4 -0
- package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
- package/dist/telemetry/semantic-conventions.js +3 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workflow/hook.d.ts.map +1 -1
- package/dist/workflow/hook.js +3 -3
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +45 -26
- package/docs/api-reference/define-hook.mdx +2 -0
- package/docs/api-reference/get-writable.mdx +1 -0
- package/docs/foundations/common-patterns.mdx +4 -0
- package/docs/foundations/errors-and-retries.mdx +29 -0
- package/docs/foundations/serialization.mdx +211 -0
- package/docs/foundations/streaming.mdx +22 -0
- package/docs/how-it-works/encryption.mdx +93 -0
- package/docs/how-it-works/meta.json +2 -1
- package/package.json +5 -9
- package/dist/builtins.d.ts +0 -4
- package/dist/builtins.d.ts.map +0 -1
- package/dist/builtins.js +0 -13
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { waitUntil } from '@vercel/functions';
|
|
2
|
-
import { FatalError, RetryableError,
|
|
2
|
+
import { EntityConflictError, FatalError, RetryableError, RunExpiredError, StepNotRegisteredError, ThrottleError, TooEarlyError, WorkflowRuntimeError, WorkflowWorldError, } from '@workflow/errors';
|
|
3
3
|
import { pluralize } from '@workflow/utils';
|
|
4
4
|
import { getPort } from '@workflow/utils/get-port';
|
|
5
5
|
import { SPEC_VERSION_CURRENT, StepInvokePayloadSchema } from '@workflow/world';
|
|
@@ -12,6 +12,7 @@ import * as Attribute from '../telemetry/semantic-conventions.js';
|
|
|
12
12
|
import { getSpanKind, linkToCurrentContext, serializeTraceCarrier, trace, withTraceContext, } from '../telemetry.js';
|
|
13
13
|
import { getErrorName, getErrorStack, normalizeUnknownError, } from '../types.js';
|
|
14
14
|
import { getQueueOverhead, getWorkflowQueueName, handleHealthCheckMessage, parseHealthCheckPayload, queueMessage, withHealthCheck, } from './helpers.js';
|
|
15
|
+
import { MAX_QUEUE_DELIVERIES } from './constants.js';
|
|
15
16
|
import { getWorld, getWorldHandlers } from './world.js';
|
|
16
17
|
const DEFAULT_STEP_MAX_RETRIES = 3;
|
|
17
18
|
const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (message_, metadata) => {
|
|
@@ -25,6 +26,57 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
25
26
|
return;
|
|
26
27
|
}
|
|
27
28
|
const { workflowName, workflowRunId, workflowStartedAt, stepId, traceCarrier: traceContext, requestedAt, } = StepInvokePayloadSchema.parse(message_);
|
|
29
|
+
const { requestId } = metadata;
|
|
30
|
+
// --- Max delivery check ---
|
|
31
|
+
// Enforce max delivery limit before any infrastructure calls.
|
|
32
|
+
// This prevents runaway steps from consuming infinite queue deliveries.
|
|
33
|
+
// At this point, we want to do the minimal amount of work (no fetching
|
|
34
|
+
// of the step details, etc. We simply attempt to mark the step as failed
|
|
35
|
+
// and enqueue the workflow once, and if either of those fails, the message
|
|
36
|
+
// is still consumed but with adequate logging that an error occurred.
|
|
37
|
+
if (metadata.attempt > MAX_QUEUE_DELIVERIES) {
|
|
38
|
+
runtimeLogger.error(`Step handler exceeded max deliveries (${metadata.attempt}/${MAX_QUEUE_DELIVERIES})`, {
|
|
39
|
+
workflowRunId,
|
|
40
|
+
stepId,
|
|
41
|
+
stepName: metadata.queueName.slice('__wkf_step_'.length),
|
|
42
|
+
attempt: metadata.attempt,
|
|
43
|
+
});
|
|
44
|
+
try {
|
|
45
|
+
const world = getWorld();
|
|
46
|
+
await world.events.create(workflowRunId, {
|
|
47
|
+
eventType: 'step_failed',
|
|
48
|
+
specVersion: SPEC_VERSION_CURRENT,
|
|
49
|
+
correlationId: stepId,
|
|
50
|
+
eventData: {
|
|
51
|
+
error: `Step exceeded maximum queue deliveries (${metadata.attempt}/${MAX_QUEUE_DELIVERIES})`,
|
|
52
|
+
},
|
|
53
|
+
}, { requestId });
|
|
54
|
+
// Re-queue the workflow to handle the failed step
|
|
55
|
+
await queueMessage(world, getWorkflowQueueName(workflowName), {
|
|
56
|
+
runId: workflowRunId,
|
|
57
|
+
traceCarrier: await serializeTraceCarrier(),
|
|
58
|
+
requestedAt: new Date(),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
if (EntityConflictError.is(err) || RunExpiredError.is(err)) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Can't even mark the step as failed. Consume the message to stop
|
|
66
|
+
// further retries. The run will remain in its current state.
|
|
67
|
+
runtimeLogger.error(`Failed to mark step as failed after ${metadata.attempt} delivery attempts. ` +
|
|
68
|
+
`A persistent error is preventing the step from being terminated. ` +
|
|
69
|
+
`The run will remain in its current state until manually resolved. ` +
|
|
70
|
+
`This is most likely due to a persistent outage of the workflow backend ` +
|
|
71
|
+
`or a bug in the workflow runtime and should be reported to the Workflow team.`, {
|
|
72
|
+
workflowRunId,
|
|
73
|
+
stepId,
|
|
74
|
+
attempt: metadata.attempt,
|
|
75
|
+
error: err instanceof Error ? err.message : String(err),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
28
80
|
const spanLinks = await linkToCurrentContext();
|
|
29
81
|
// Execute step within the propagated trace context
|
|
30
82
|
return await withTraceContext(traceContext, async () => {
|
|
@@ -48,19 +100,14 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
48
100
|
...Attribute.MessagingOperationType('process'),
|
|
49
101
|
...getQueueOverhead({ requestedAt }),
|
|
50
102
|
});
|
|
103
|
+
// Note: Step function validation happens after step_started so we can
|
|
104
|
+
// properly fail the step (not the run) if the function is not registered.
|
|
105
|
+
// This allows the workflow to handle the step failure gracefully.
|
|
51
106
|
const stepFn = getStepFunction(stepName);
|
|
52
|
-
if (!stepFn) {
|
|
53
|
-
throw new Error(`Step "${stepName}" not found`);
|
|
54
|
-
}
|
|
55
|
-
if (typeof stepFn !== 'function') {
|
|
56
|
-
throw new Error(`Step "${stepName}" is not a function (got ${typeof stepFn})`);
|
|
57
|
-
}
|
|
58
|
-
const maxRetries = stepFn.maxRetries ?? DEFAULT_STEP_MAX_RETRIES;
|
|
59
107
|
span?.setAttributes({
|
|
60
108
|
...Attribute.WorkflowName(workflowName),
|
|
61
109
|
...Attribute.WorkflowRunId(workflowRunId),
|
|
62
110
|
...Attribute.StepId(stepId),
|
|
63
|
-
...Attribute.StepMaxRetries(maxRetries),
|
|
64
111
|
...Attribute.StepTracePropagated(!!traceContext),
|
|
65
112
|
});
|
|
66
113
|
// step_started validates state and returns the step entity, so no separate
|
|
@@ -74,79 +121,66 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
74
121
|
eventType: 'step_started',
|
|
75
122
|
specVersion: SPEC_VERSION_CURRENT,
|
|
76
123
|
correlationId: stepId,
|
|
77
|
-
});
|
|
124
|
+
}, { requestId });
|
|
78
125
|
if (!startResult.step) {
|
|
79
126
|
throw new WorkflowRuntimeError(`step_started event for "${stepId}" did not return step entity`);
|
|
80
127
|
}
|
|
81
128
|
step = startResult.step;
|
|
82
129
|
}
|
|
83
130
|
catch (err) {
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
//
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
span?.addEvent?.('step.delayed', {
|
|
138
|
-
'delay.reason': 'retry_after_not_reached',
|
|
139
|
-
'delay.timeout_seconds': timeoutSeconds,
|
|
140
|
-
'delay.retry_after': retryAfter.toISOString(),
|
|
141
|
-
});
|
|
142
|
-
runtimeLogger.debug('Step retryAfter timestamp not yet reached', {
|
|
143
|
-
stepName,
|
|
144
|
-
stepId,
|
|
145
|
-
retryAfter,
|
|
146
|
-
timeoutSeconds,
|
|
147
|
-
});
|
|
148
|
-
return { timeoutSeconds };
|
|
149
|
-
}
|
|
131
|
+
if (ThrottleError.is(err)) {
|
|
132
|
+
const retryRetryAfter = Math.max(1, typeof err.retryAfter === 'number' ? err.retryAfter : 1);
|
|
133
|
+
runtimeLogger.info('Throttled again on retry, deferring to queue', {
|
|
134
|
+
retryAfterSeconds: retryRetryAfter,
|
|
135
|
+
});
|
|
136
|
+
return { timeoutSeconds: retryRetryAfter };
|
|
137
|
+
}
|
|
138
|
+
if (RunExpiredError.is(err)) {
|
|
139
|
+
runtimeLogger.info(`Workflow run "${workflowRunId}" has already completed, skipping step "${stepId}": ${err.message}`);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (EntityConflictError.is(err)) {
|
|
143
|
+
runtimeLogger.debug('Step in terminal state, re-enqueuing workflow', {
|
|
144
|
+
stepName,
|
|
145
|
+
stepId,
|
|
146
|
+
workflowRunId,
|
|
147
|
+
error: err.message,
|
|
148
|
+
});
|
|
149
|
+
span?.setAttributes({
|
|
150
|
+
...Attribute.StepSkipped(true),
|
|
151
|
+
...Attribute.StepSkipReason('completed'),
|
|
152
|
+
});
|
|
153
|
+
span?.addEvent?.('step.skipped', {
|
|
154
|
+
'skip.reason': 'terminal_state',
|
|
155
|
+
'step.name': stepName,
|
|
156
|
+
'step.id': stepId,
|
|
157
|
+
});
|
|
158
|
+
await queueMessage(world, getWorkflowQueueName(workflowName), {
|
|
159
|
+
runId: workflowRunId,
|
|
160
|
+
traceCarrier: await serializeTraceCarrier(),
|
|
161
|
+
requestedAt: new Date(),
|
|
162
|
+
});
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// Too early: retryAfter timestamp not reached yet
|
|
166
|
+
// Return timeout to queue so it retries later
|
|
167
|
+
if (TooEarlyError.is(err)) {
|
|
168
|
+
const timeoutSeconds = Math.max(1, err.retryAfter ?? 1);
|
|
169
|
+
span?.setAttributes({
|
|
170
|
+
...Attribute.StepRetryTimeoutSeconds(timeoutSeconds),
|
|
171
|
+
});
|
|
172
|
+
// Add span event for delayed retry
|
|
173
|
+
span?.addEvent?.('step.delayed', {
|
|
174
|
+
'delay.reason': 'retry_after_not_reached',
|
|
175
|
+
'delay.timeout_seconds': timeoutSeconds,
|
|
176
|
+
});
|
|
177
|
+
runtimeLogger.debug('Step retryAfter timestamp not yet reached', {
|
|
178
|
+
stepName,
|
|
179
|
+
stepId,
|
|
180
|
+
retryAfterSeconds: err.retryAfter,
|
|
181
|
+
timeoutSeconds,
|
|
182
|
+
});
|
|
183
|
+
return { timeoutSeconds };
|
|
150
184
|
}
|
|
151
185
|
// Re-throw other errors
|
|
152
186
|
throw err;
|
|
@@ -160,6 +194,59 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
160
194
|
span?.setAttributes({
|
|
161
195
|
...Attribute.StepStatus(step.status),
|
|
162
196
|
});
|
|
197
|
+
// Validate step function exists AFTER step_started so we can
|
|
198
|
+
// properly fail the step (not the run) if the function is missing.
|
|
199
|
+
// This allows the workflow to handle the step failure gracefully,
|
|
200
|
+
// similar to how FatalError is handled.
|
|
201
|
+
if (!stepFn || typeof stepFn !== 'function') {
|
|
202
|
+
const err = new StepNotRegisteredError(stepName);
|
|
203
|
+
runtimeLogger.error('Step function not registered, failing step (not run)', {
|
|
204
|
+
workflowRunId,
|
|
205
|
+
stepName,
|
|
206
|
+
stepId,
|
|
207
|
+
error: err.message,
|
|
208
|
+
});
|
|
209
|
+
// Fail the step via event (event-sourced architecture)
|
|
210
|
+
// This matches the FatalError pattern - fail the step and re-queue workflow
|
|
211
|
+
try {
|
|
212
|
+
await world.events.create(workflowRunId, {
|
|
213
|
+
eventType: 'step_failed',
|
|
214
|
+
specVersion: SPEC_VERSION_CURRENT,
|
|
215
|
+
correlationId: stepId,
|
|
216
|
+
eventData: {
|
|
217
|
+
error: err.message,
|
|
218
|
+
stack: err.stack,
|
|
219
|
+
},
|
|
220
|
+
}, { requestId });
|
|
221
|
+
}
|
|
222
|
+
catch (stepFailErr) {
|
|
223
|
+
if (EntityConflictError.is(stepFailErr)) {
|
|
224
|
+
runtimeLogger.info('Tried failing step for missing function, but step has already finished.', {
|
|
225
|
+
workflowRunId,
|
|
226
|
+
stepId,
|
|
227
|
+
stepName,
|
|
228
|
+
message: stepFailErr.message,
|
|
229
|
+
});
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
throw stepFailErr;
|
|
233
|
+
}
|
|
234
|
+
span?.setAttributes({
|
|
235
|
+
...Attribute.StepStatus('failed'),
|
|
236
|
+
...Attribute.StepFatalError(true),
|
|
237
|
+
});
|
|
238
|
+
// Re-invoke the workflow to handle the failed step
|
|
239
|
+
await queueMessage(world, getWorkflowQueueName(workflowName), {
|
|
240
|
+
runId: workflowRunId,
|
|
241
|
+
traceCarrier: await serializeTraceCarrier(),
|
|
242
|
+
requestedAt: new Date(),
|
|
243
|
+
});
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const maxRetries = stepFn.maxRetries ?? DEFAULT_STEP_MAX_RETRIES;
|
|
247
|
+
span?.setAttributes({
|
|
248
|
+
...Attribute.StepMaxRetries(maxRetries),
|
|
249
|
+
});
|
|
163
250
|
let result;
|
|
164
251
|
// Check max retries AFTER step_started (attempt was just incremented)
|
|
165
252
|
// step.attempt tracks how many times step_started has been called.
|
|
@@ -184,11 +271,11 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
184
271
|
error: errorMessage,
|
|
185
272
|
stack: step.error?.stack,
|
|
186
273
|
},
|
|
187
|
-
});
|
|
274
|
+
}, { requestId });
|
|
188
275
|
}
|
|
189
276
|
catch (err) {
|
|
190
|
-
if (
|
|
191
|
-
runtimeLogger.
|
|
277
|
+
if (EntityConflictError.is(err)) {
|
|
278
|
+
runtimeLogger.info('Tried failing step, but step has already finished.', {
|
|
192
279
|
workflowRunId,
|
|
193
280
|
stepId,
|
|
194
281
|
stepName,
|
|
@@ -234,10 +321,10 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
234
321
|
error: errorMessage,
|
|
235
322
|
stack: new Error(errorMessage).stack ?? '',
|
|
236
323
|
},
|
|
237
|
-
});
|
|
324
|
+
}, { requestId });
|
|
238
325
|
}
|
|
239
326
|
catch (failErr) {
|
|
240
|
-
if (
|
|
327
|
+
if (EntityConflictError.is(failErr)) {
|
|
241
328
|
return;
|
|
242
329
|
}
|
|
243
330
|
throw failErr;
|
|
@@ -317,16 +404,16 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
317
404
|
// Infrastructure errors that somehow surfaced through user code
|
|
318
405
|
// should propagate to the queue handler for retry, not consume
|
|
319
406
|
// step attempts.
|
|
320
|
-
if (
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
407
|
+
if (RunExpiredError.is(err)) {
|
|
408
|
+
// Workflow has already completed, so no-op
|
|
409
|
+
stepLogger.info('Workflow run already completed, skipping step', {
|
|
410
|
+
workflowRunId,
|
|
411
|
+
stepId,
|
|
412
|
+
message: err.message,
|
|
413
|
+
});
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
if (WorkflowWorldError.is(err)) {
|
|
330
417
|
if (err.status !== undefined && err.status >= 500) {
|
|
331
418
|
throw err;
|
|
332
419
|
}
|
|
@@ -368,12 +455,11 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
368
455
|
error: normalizedError.message,
|
|
369
456
|
stack: normalizedStack,
|
|
370
457
|
},
|
|
371
|
-
});
|
|
458
|
+
}, { requestId });
|
|
372
459
|
}
|
|
373
460
|
catch (stepFailErr) {
|
|
374
|
-
if (
|
|
375
|
-
|
|
376
|
-
runtimeLogger.warn('Tried failing step, but step has already finished.', {
|
|
461
|
+
if (EntityConflictError.is(stepFailErr)) {
|
|
462
|
+
runtimeLogger.info('Tried failing step, but step has already finished.', {
|
|
377
463
|
workflowRunId,
|
|
378
464
|
stepId,
|
|
379
465
|
stepName,
|
|
@@ -418,12 +504,11 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
418
504
|
error: errorMessage,
|
|
419
505
|
stack: normalizedStack,
|
|
420
506
|
},
|
|
421
|
-
});
|
|
507
|
+
}, { requestId });
|
|
422
508
|
}
|
|
423
509
|
catch (stepFailErr) {
|
|
424
|
-
if (
|
|
425
|
-
|
|
426
|
-
runtimeLogger.warn('Tried failing step, but step has already finished.', {
|
|
510
|
+
if (EntityConflictError.is(stepFailErr)) {
|
|
511
|
+
runtimeLogger.info('Tried failing step, but step has already finished.', {
|
|
427
512
|
workflowRunId,
|
|
428
513
|
stepId,
|
|
429
514
|
stepName,
|
|
@@ -441,7 +526,7 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
441
526
|
else {
|
|
442
527
|
// Not at max retries yet - log as a retryable error
|
|
443
528
|
if (RetryableError.is(err)) {
|
|
444
|
-
stepLogger.
|
|
529
|
+
stepLogger.info('Encountered RetryableError, step will be retried', {
|
|
445
530
|
workflowRunId,
|
|
446
531
|
stepName,
|
|
447
532
|
attempt: currentAttempt,
|
|
@@ -449,7 +534,7 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
449
534
|
});
|
|
450
535
|
}
|
|
451
536
|
else {
|
|
452
|
-
stepLogger.
|
|
537
|
+
stepLogger.info('Encountered Error, step will be retried', {
|
|
453
538
|
workflowRunId,
|
|
454
539
|
stepName,
|
|
455
540
|
attempt: currentAttempt,
|
|
@@ -470,12 +555,11 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
470
555
|
retryAfter: err.retryAfter,
|
|
471
556
|
}),
|
|
472
557
|
},
|
|
473
|
-
});
|
|
558
|
+
}, { requestId });
|
|
474
559
|
}
|
|
475
560
|
catch (stepRetryErr) {
|
|
476
|
-
if (
|
|
477
|
-
|
|
478
|
-
runtimeLogger.warn('Tried retrying step, but step has already finished.', {
|
|
561
|
+
if (EntityConflictError.is(stepRetryErr)) {
|
|
562
|
+
runtimeLogger.info('Tried retrying step, but step has already finished.', {
|
|
479
563
|
workflowRunId,
|
|
480
564
|
stepId,
|
|
481
565
|
stepName,
|
|
@@ -545,10 +629,10 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
545
629
|
eventData: {
|
|
546
630
|
result: result,
|
|
547
631
|
},
|
|
548
|
-
})
|
|
632
|
+
}, { requestId })
|
|
549
633
|
.catch((err) => {
|
|
550
|
-
if (
|
|
551
|
-
runtimeLogger.
|
|
634
|
+
if (EntityConflictError.is(err)) {
|
|
635
|
+
runtimeLogger.info('Tried completing step, but step has already finished.', {
|
|
552
636
|
workflowRunId,
|
|
553
637
|
stepId,
|
|
554
638
|
stepName,
|
|
@@ -584,4 +668,4 @@ const stepHandler = getWorldHandlers().createQueueHandler('__wkf_step_', async (
|
|
|
584
668
|
*/
|
|
585
669
|
export const stepEntrypoint =
|
|
586
670
|
/* @__PURE__ */ withHealthCheck(stepHandler);
|
|
587
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvc3RlcC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsVUFBVSxFQUNWLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEdBQ3JCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG9CQUFvQixHQUNyQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssU0FBUyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixLQUFLLEVBQ0wsZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEVBQ2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGVB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
|
|
671
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvc3RlcC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixjQUFjLEVBQ2QsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixhQUFhLEVBQ2IsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsb0JBQW9CLEdBQ3JCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxTQUFTLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUNMLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLEtBQUssRUFDTCxnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixxQkFBcUIsR0FDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLGdCQUFnQixF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
|
|
@@ -6,6 +6,7 @@ export interface SuspensionHandlerParams {
|
|
|
6
6
|
world: World;
|
|
7
7
|
run: WorkflowRun;
|
|
8
8
|
span?: Span;
|
|
9
|
+
requestId?: string;
|
|
9
10
|
}
|
|
10
11
|
export interface SuspensionHandlerResult {
|
|
11
12
|
timeoutSeconds?: number;
|
|
@@ -19,5 +20,5 @@ export interface SuspensionHandlerResult {
|
|
|
19
20
|
* 1. Hooks are processed first to prevent race conditions with webhook receivers
|
|
20
21
|
* 2. Steps and waits are processed in parallel after hooks complete
|
|
21
22
|
*/
|
|
22
|
-
export declare function handleSuspension({ suspension, world, run, span, }: SuspensionHandlerParams): Promise<SuspensionHandlerResult>;
|
|
23
|
+
export declare function handleSuspension({ suspension, world, run, span, requestId, }: SuspensionHandlerParams): Promise<SuspensionHandlerResult>;
|
|
23
24
|
//# sourceMappingURL=suspension-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suspension-handler.d.ts","sourceRoot":"","sources":["../../src/runtime/suspension-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"suspension-handler.d.ts","sourceRoot":"","sources":["../../src/runtime/suspension-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAO/C,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,KAAK,EACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAwBtB,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,UAAU,EACV,KAAK,EACL,GAAG,EACH,IAAI,EACJ,SAAS,GACV,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAsR5D"}
|