Why do the docs say there is a 30 Retention limit for completed Workflow state.. but then also say i
Why do the docs say there is a 30 Retention limit for completed Workflow state.. but then also say it's stored for 7 days?
wrangler types expected to generate types for workflows defined in wrangler.toml?restart()'ing an instance count to the 100 per 10 second liimit of the Maximum Workflow instance creation rate?console.log messages emitted during that workflow run.`
export abstract class AbstractWorkflow<T, R> extends WorkflowEntrypoint<Env, T> {
protected abstract getName(): string;
protected abstract validateInput(input: T): void;
protected abstract runStep(event: WorkflowEvent<T>, step: WorkflowStep): Promise<R>;
async run(event: WorkflowEvent<T>, step: WorkflowStep): Promise<unknown> {
console.log({
message: `${this.getName()} started.`,
level: "info",
event,
});
try {
this.validateInput(event.payload);
const output = await this.runStep(event, step);
console.log({
message: `${this.getName()} completed.`,
level: "info",
event,
output,
});
return output;
} catch (error) {
console.log({
message: `${this.getName()} failed.`,
level: "error",
event,
error,
});
throw error;
}
}
}

waitForEvent step, but when we use sendEvent in our route to continue the workflow, we are sometimes waiting up to 45 minutes for the workflow to continue. Some extra info:sendEvent is being called is deployed to a Cloudflare Worker.sendEvent is called, and the types match.waitForEvent step has only been waiting for a few minutes I havenβt recreated the issue yet, but when the waitForEvent step has been waiting 20+ minutes we run into the issue the majority of the time.`
export abstract class AbstractWorkflow<T, R> extends WorkflowEntrypoint<Env, T> {
protected abstract getName(): string;
protected abstract validateInput(input: T): void;
protected abstract runStep(event: WorkflowEvent<T>, step: WorkflowStep): Promise<R>;
async run(event: WorkflowEvent<T>, step: WorkflowStep): Promise<unknown> {
console.log({
message: `${this.getName()} started.`,
level: "info",
event,
});
try {
this.validateInput(event.payload);
const output = await this.runStep(event, step);
console.log({
message: `${this.getName()} completed.`,
level: "info",
event,
output,
});
return output;
} catch (error) {
console.log({
message: `${this.getName()} failed.`,
level: "error",
event,
error,
});
throw error;
}
}
}