`Promise.all` works - we don’t change how the standard promise handling works. `sendEvent` is still
Promise.all works - we don’t change how the standard promise handling works. sendEvent is still a sub-request though.sendEventis still a sub-request thoughsendEvent
.sendEvent (with unique Ids)Error: (workflow.invalid_event_type) Provided event type is invalid, and it was because it doesn't work with long-ish event names. I was using a UUID as the event name, and it wasn't working...step.waitForEvent("name", { type: "here" }) instance.sendEvent({ type: "here" }), that's where it was throwing the errorqueued status foreverNonRetryableError 
steps.do pulls the data from a cache that Cloudflare has set up. fnd fails, the following will happen:fna and fnc will both rerun. They better be idempotent.fnb will not rerun because it was pulled from the workflow cache.fnd will still have access to a, b, and c but a and c are fresh data whereas b was pulled from cache.
wrangler workflows instances describe and I can't see the log messages there.const a = fna()
const b = step.do("fnb", fnb())
const c = fnc(b)
const d = step.do("fnd", fnd(a,b,c)) async run(context: WorkflowEvent<MyParams>, step: WorkflowStep): Promise<void> {
const workflowId = context.instanceId;
const params = context.payload;
console.log(`Workflow ${workflowId} started with params:`, [...Object.keys(params)]);
try {
// Step 1: Example
const processedData = await step.do('process-data', async () => {
console.log(`[${workflowId}] Step 1: Processing data...`);
// Simulate work - replace with actual logic
await new Promise(resolve => setTimeout(resolve, 1000)); // Simulate delay
console.log(`[${workflowId}] Step 1: Processing complete.`);
return true;
});.sendEventError: (workflow.invalid_event_type) Provided event type is invalidstep.waitForEvent("name", { type: "here" })instance.sendEvent({ type: "here" })