MCPcopy Index your code
hub / github.com/simstudioai/sim / runWorkflowExecution

Function runWorkflowExecution

apps/sim/background/schedule-execution.ts:338–560  ·  view source on GitHub ↗
({
  payload,
  correlation,
  workflowRecord,
  actorUserId,
  loggingSession,
  requestId,
  executionId,
  asyncTimeout,
}: {
  payload: ScheduleExecutionPayload
  correlation: AsyncExecutionCorrelation
  workflowRecord: WorkflowRecord
  actorUserId: string
  loggingSession: LoggingSession
  requestId: string
  executionId: string
  asyncTimeout?: number
})

Source from the content-addressed store, hash-verified

336}
337
338async function runWorkflowExecution({
339 payload,
340 correlation,
341 workflowRecord,
342 actorUserId,
343 loggingSession,
344 requestId,
345 executionId,
346 asyncTimeout,
347}: {
348 payload: ScheduleExecutionPayload
349 correlation: AsyncExecutionCorrelation
350 workflowRecord: WorkflowRecord
351 actorUserId: string
352 loggingSession: LoggingSession
353 requestId: string
354 executionId: string
355 asyncTimeout?: number
356}): Promise<RunWorkflowResult> {
357 let workflowCoreStarted = false
358 try {
359 const deployedData = await loadDeployedWorkflowState(
360 payload.workflowId,
361 workflowRecord.workspaceId ?? undefined
362 )
363
364 const blocks = deployedData.blocks
365 const { deploymentVersionId } = deployedData
366 if (payload.deploymentVersionId && deploymentVersionId !== payload.deploymentVersionId) {
367 logger.info(`[${requestId}] Loaded deployment no longer matches queued schedule, skipping`, {
368 scheduleId: payload.scheduleId,
369 workflowId: payload.workflowId,
370 queuedDeploymentVersionId: payload.deploymentVersionId,
371 loadedDeploymentVersionId: deploymentVersionId,
372 })
373 return {
374 status: 'skip',
375 reason: 'stale_deployment',
376 blocks: {} as Record<string, BlockState>,
377 }
378 }
379 logger.info(`[${requestId}] Loaded deployed workflow ${payload.workflowId}`)
380
381 if (payload.blockId) {
382 if (!blocks[payload.blockId]) {
383 logger.warn(
384 `[${requestId}] Schedule trigger block ${payload.blockId} not found in deployed workflow ${payload.workflowId}. Skipping execution.`
385 )
386
387 return {
388 status: 'skip',
389 reason: 'invalid_schedule',
390 blocks: {} as Record<string, BlockState>,
391 }
392 }
393 }
394
395 const workspaceId = workflowRecord.workspaceId

Callers 1

executeScheduleJobFunction · 0.85

Calls 15

executeWorkflowCoreFunction · 0.90
getTimeoutErrorMessageFunction · 0.90
describeErrorFunction · 0.90
hasExecutionResultFunction · 0.90
buildTraceSpansFunction · 0.90
toErrorFunction · 0.90

Tested by

no test coverage detected