Common properties

The Timeout and Continue On Error properties every activity has, and the Behaviour fields shown at the top of each activity page.

Every activity in a workflow has two properties that come from the workflow engine, not from the activity's package: Timeout and Continue On Error. You set them on the activity in the workflow, like its display name. Both take an expression.

Timeout#

Timeout limits the whole activity: every attempt and every wait between retries. It is empty by default, which means no limit.

  • When the time runs out, the activity fails with a timeout fault (VXF-ACTIVITY-TIMEOUT). The activity's own retry policy does not retry it.
  • The timeout is cooperative. The engine asks the activity to stop. An activity that does not stop is abandoned after a grace period. Its outcome is then unknown: it may still complete what it was doing.

Some activities also have a timeout of their own under another name, such as TimeoutMS for one HTTP request or TimeoutSeconds for how long to look for a UI element. Those are separate from Timeout.

Continue On Error#

Continue On Error is off by default. When it is on and the activity still fails after its own retries, the engine logs the fault as a warning and the workflow continues with the next step.

  • The activity's outputs are not written. Variables bound to them keep the values they had before.
  • It also covers a timeout fault.
  • It never covers cancellation. When the run is stopped, the activity stops.

The order the engine applies#

From the inside out, each layer sees a fault only if every layer inside it let it through:

  1. The attempt.
  2. The activity's retry policy.
  3. Timeout, which limits 1 and 2 together.
  4. Continue On Error.
  5. The enclosing workflow: Retry Scope, Try Catch and the workflows that invoked this one.
  6. The Global Exception Handler, for a fault nothing else handled.

Behaviour fields#

The top of each activity page shows how the activity behaves when something goes wrong. The activity's author declares these values.

Field Meaning
Risk The highest risk any configuration of the activity reaches: None, Low, Medium or High. Unknown (not declared) means the author did not declare it. Treat that as unknown, not as harmless.
Idempotent Running it twice with the same inputs has no additional effect.
Safe to retry It may be retried automatically after a failure.
Recovery What the engine does if the Robot stops while the activity runs: run it again, ask the activity whether the interrupted attempt took effect, or suspend the job for someone to decide.

A retry policy, and the Retry action of the Global Exception Handler, only retry an activity that is idempotent, safe to retry or safe to replay.

An unknown outcome is never retried automatically. That covers an abandoned activity that is not idempotent, and a job attempt that ended before it reported a result. Someone has to check what happened and decide. On the Orchestrator, find these jobs on the Jobs page with the filter Fault ▸ Outcome unknown (to reconcile). See Jobs.

For how authors declare these values, see Characteristics: retries, recovery and risk.

Timeout

Continue On Error

The order the engine applies

Behaviour fields