# Handle errors and retries

Control / error

error handling, retry, abort, dead-letter routing

Page: <https://meridian.online/operations/handle-errors-and-retries>

## Status

A feature, not a step.

It lives in how a Protocol runs. [src/manifest.rs in arcform at fc62d6f](https://github.com/meridian-online/arcform/blob/fc62d6f861dd/src/manifest.rs)

## Variants

- [Stop the run with an error](https://meridian.online/operations/handle-errors-and-retries/stop-the-run-with-an-error): Fail the run on purpose, with a message, when a condition or row threshold is met.
- Return a fault to a caller: Send a failure back as a fault message to the service or route that called the job.
- Inspect errors: Open the error records or tracebacks of a run, or raise and trace error records in code.
- [Send failed rows aside](https://meridian.online/operations/handle-errors-and-retries/send-failed-rows-aside): Route the rows that failed a step to a separate output or dead-letter file while the rest carry on.
- Retry a failed step: Run a step again after a failure, up to a limit, with a backoff.
- Roll back on failure: Group database steps in a transaction that commits on success and rolls back on failure.
- Catch a failure and run a fallback: Wrap steps so that when one fails, a fallback branch or alternative runs instead of the run stopping.
- Warn and carry on: Raise a warning, or force a successful result, without stopping the run.

## What other tools call it

Meridian's classification; an independent blind rating agreed on 86.2% of 312 rows (exact class, version 2).

- Azure Data Factory: [`Fail activity`](https://learn.microsoft.com/en-us/azure/data-factory/control-flow-fail-activity) (read 2026-09-27)
- Alteryx Designer: [`Error Message`](https://help.alteryx.com/current/en/designer/tools/interface-tools/error-message-tool.html) (read 2026-09-27)
- Duckle: [`Dead Letter Queue`](https://github.com/slothflowlabs/duckle/blob/f85f8960edfb6efbf4cb89d58a7b32e16df0e867/frontend/src/workflow-ui/palette-data.ts) (read 2026-09-25)
- Duckle: [`Die / Fail`](https://github.com/slothflowlabs/duckle/blob/f85f8960edfb6efbf4cb89d58a7b32e16df0e867/website/docs/components.html) (read 2026-09-25)
- Duckle: [`Retry`](https://github.com/slothflowlabs/duckle/blob/f85f8960edfb6efbf4cb89d58a7b32e16df0e867/frontend/src/workflow-ui/palette-data.ts) (read 2026-09-25)
- Duckle: [`Try / Catch`](https://github.com/slothflowlabs/duckle/blob/f85f8960edfb6efbf4cb89d58a7b32e16df0e867/website/docs/components.html) (read 2026-09-25)
- EasyMorph: [`Halt/Warn on condition`](https://help.easymorph.com/doku.php?id=transformations:halt) (read 2026-09-27)
- AWS Glue: [`ErrorsAsDynamicFrame`](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-ErrorsAsDynamicFrame.html) (read 2026-09-27)
- AWS Glue: [`assertErrorThreshold`](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-extensions-dynamic-frame.html) (read 2026-09-27)
- Apache Hop: [`Abort`](https://hop.apache.org/manual/latest/pipeline/transforms/abort.html) (read 2026-09-27)
- Apache Hop: [`Abort workflow`](https://hop.apache.org/manual/latest/workflow/actions/abort.html) (read 2026-09-27)
- Apache Hop: [`Success`](https://hop.apache.org/manual/latest/workflow/actions/success.html) (read 2026-09-27)
- KNIME Analytics Platform: [`Catch Errors (Data Ports)`](https://api.hub.knime.com/nodes/*n3KemxSzYJ3CC2Od?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Catch Errors (Generic Ports)`](https://api.hub.knime.com/nodes/*g2ZnLIcJbsKY4qee?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Catch Errors (Var Ports)`](https://api.hub.knime.com/nodes/*6qPKqqqXXYoDtRvO?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`DB Transaction End`](https://api.hub.knime.com/nodes/*30popOQ2-uN49px4?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`DB Transaction Start`](https://api.hub.knime.com/nodes/*zHHfuzMzdxB3fgQn?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Try (Data Ports)`](https://api.hub.knime.com/nodes/*1JiX1CoY_ZPK47OF?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Try (Variable Ports)`](https://api.hub.knime.com/nodes/*CESjfcivL3wX9WNP?details=full) (read 2026-09-27)
- Apache NiFi: [`RetryFlowFile`](https://nifi.apache.org/components/org.apache.nifi.processors.standard.RetryFlowFile/) (read 2026-09-27)
- Pentaho Data Integration: [`Abort`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Power Query M: [`Error handling`](https://learn.microsoft.com/en-us/powerquery-m/error-handling) (read 2026-09-27)
- Power Query M: [`Table.ViewError`](https://learn.microsoft.com/en-us/powerquery-m/table-functions#table-construction) (read 2026-09-27)
- RapidMiner Studio: [`Handle Exception`](https://docs.rapidminer.com/latest/studio/operators/utility/process_control/exceptions/handle_exception.html) (read 2026-09-27)
- RapidMiner Studio: [`Throw Custom Error`](https://docs.rapidminer.com/latest/studio/operators/extensions/Custom%20Operators/utility/throw_custom_error.html) (read 2026-09-27)
- RapidMiner Studio: [`Throw Exception`](https://docs.rapidminer.com/latest/studio/operators/utility/process_control/exceptions/throw_exception.html) (read 2026-09-27)
- RapidMiner Studio: [`Try (Multiple)`](https://docs.rapidminer.com/latest/studio/operators/extensions/Operator%20Toolbox/utility/try_multiple.html) (read 2026-09-27)
- Talend: [`tDie`](https://help.qlik.com/talend/en-US/components/8.0/logs-and-errors/logs-and-errors-component) (read 2026-09-27)
- Talend: [`tESBProviderFault`](https://help.qlik.com/talend/en-US/components/8.0/esb-soap/esb-soap-component) (read 2026-09-27)
- Talend: [`tJobFailure`](https://help.qlik.com/talend/en-US/components/8.0/talend-cloud/talend-cloud-component) (read 2026-09-27)
- Talend: [`tJobReject`](https://help.qlik.com/talend/en-US/components/8.0/talend-cloud/talend-cloud-component) (read 2026-09-27)
- Talend: [`tRouteFault`](https://help.qlik.com/talend/en-US/components/8.0/route/route-component) (read 2026-09-27)
- Talend: [`tWarn`](https://help.qlik.com/talend/en-US/components/8.0/logs-and-errors/logs-and-errors-component) (read 2026-09-27)
- VisiData: [`allow-error`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/features/replay_bulk.py#L77) (read 2026-09-23)
- VisiData: [`error-cell`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/textsheet.py#L125) (read 2026-09-23)
- VisiData: [`error-recent`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/textsheet.py#L122) (read 2026-09-23)
- VisiData: [`errors-all`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/textsheet.py#L123) (read 2026-09-23)
