Portal Community

Status Progression

pending → running → (paused) → completed
                              ↘ failed
                              ↘ cancelled

Status Reference

StatusColourMeaningTriggered By
pendingGrey (#718096)Execution created, not yet startedPOST /execute response
runningBlue (#60a5fa)At least one node is executingWorkflowExecutionStarted event
pausedAmber (#fbbf24)User paused the executionWorkflowExecutionPaused event
completedGreen (#34d399)All nodes finished successfullyWorkflowExecutionCompleted (status=completed)
failedRed (#f87171)An unhandled error stopped executionWorkflowExecutionCompleted (status=failed)
cancelledOrange (#fb923c)User cancelled the runWorkflowExecutionCancelled event

Animated Running State

While the status is running, the badge pulses with a CSS animation — a subtle opacity oscillation that distinguishes "actively running" from a momentarily stuck state. The animation stops immediately when the next terminal event arrives.

/* Pulse animation for running state */
@keyframes statusPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}
.status-badge[data-status="running"] {
  animation: statusPulse 1.5s ease-in-out infinite;
}

Where the Status Comes From

The badge reads flowObserverPanelStore.executionStatus. This value is set in three ways:

  1. Set to pending when engine.clear() is called at the start of a new execution
  2. Set to running when the first WorkflowExecutionStarted event arrives
  3. Set to the terminal state (completed, failed, cancelled) when WorkflowExecutionCompleted or WorkflowExecutionCancelled arrives