Run behavior
This page explains what happens when a workflow is executed from the IvoryOS UI.
Workflow phases
Every workflow has three phases:
Prep runs once before the main experiment.
Script runs the main workflow actions. This phase may repeat by repeat count, parameter rows, batches, or optimizer iterations.
Cleanup runs once after the script phase, unless the run is stopped in a way that skips cleanup.
Use prep for setup that should happen once, such as homing a robot, priming a line, or checking an initial condition. Use cleanup for shutdown steps such as turning off heaters, closing valves, or returning a device to a safe state.
Repeat, parameter, and optimizer runs
The available run setup depends on the workflow:
Workflow shape |
Run setup |
|---|---|
No configurable parameters |
Repeat count |
Configurable parameters |
Parameter table or CSV |
Configurable parameters and numerical outputs |
Optimizer setup |
The script phase is the part that repeats. Prep and cleanup stay once-per-run.
Saved outputs
Workflow actions can save return values for later steps. When an action returns a fixed-length tuple, each tuple item can be saved under its own name.
Saved outputs are recorded with the workflow run and can be reviewed from the data pages.
Pause and resume
Pause is cooperative. If a device call is already running, IvoryOS waits for that action to finish before pausing.
Use Resume to continue the paused workflow. The execution queue is also paused while the current run is paused.
Human intervention and errors
A workflow can pause for human intervention, or IvoryOS can pause after an execution error.
When this happens, use the UI to continue, retry, stop, or otherwise resolve the paused run. Retry repeats the failed step when the current paused step recorded an error.
Stop pending
Use Stop pending when the current iteration should finish but future iterations should be skipped.
Cleanup still runs by default. If the cleanup checkbox is disabled, the cleanup phase is skipped too.
Stop current
Use Stop current when the current workflow should stop as soon as IvoryOS reaches a cooperative stop check.
This does not force-kill a Python function or hardware call that is already running. IvoryOS waits for the active action to return, then skips the remaining workflow steps and cleanup.
Execution queue
Only one workflow task runs at a time. Additional submitted runs wait in the execution queue.
The Continue execution queue option controls what happens after a stopped workflow winds down:
Option |
Behavior |
|---|---|
Checked |
The next queued task can start. |
Unchecked |
The queue stays paused until resumed. |
Normal task completion does not pause the queue. If queued tasks exist and the queue is not paused, the next task starts automatically.