client.workflows.executions only exposes runAndWait. Inspect and manage existing workflow runs through client.runs.
Which polling option do I pick?
| Run length | Use |
|---|---|
| 0–60s | client.run("workflows.<slug>", input, { waitForCompletion: 60 }), server hold. |
| 60s–5min | client.workflows.executions.runAndWait(id, input), client polls every 2s. |
| Driving a UI | client.run(...) then poll client.runs.get(id) yourself. |
Statuses
status before reading result.
Get
result is set on status === 'completed'. error is set on status === 'failed'.
Per-step detail
Run and wait
The convenience helper that wraps trigger + poll:client.runs.get until terminal or timeout. Throws EigenpalTimeoutError on timeout.
List
{ id, workflowId, status, triggerType, triggerInput, result, error, createdAt, startedAt, completedAt, workflow }.
workflow is { id, name } of the owning workflow, or null if it has been deleted.
Cancel
created/pending), transitions immediately to cancelled. For running executions, stamps cancelRequestedAt so the worker honors the cancel at the next checkpoint.
Polling pattern
IfrunAndWait doesn’t fit (e.g. you’re driving a UI progress bar), poll manually: