Control / error ยท All operations

Handle errors and retries

Error handling, retry, abort, dead-letter routing.

Status

In arcform

A feature, not a step

It lives in how a Protocol runs. src/manifest.rs in arcform at fc62d6f

Shape of the result
not a data operation
Level
not a step

Variants

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.

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).

Alteryx Designer (1)
  • Error Messageread 2026-09-27

    Show an error from an expression in an app or macro and stop downstream processing

Apache Hop (3)
  • Abortread 2026-09-27

    Stop the running pipeline once a row threshold arrives, optionally logging an error

  • Abort workflowread 2026-09-27

    Stop the running workflow immediately

  • Successread 2026-09-27

    Clear any error state and force the workflow result to success

Apache NiFi (1)
  • RetryFlowFileread 2026-09-27

    Compare a retry-count attribute with a maximum and route to retry or to a terminal relationship

AWS Glue (2)
  • ErrorsAsDynamicFrameread 2026-09-27

    Return the error records that arose while the source frame was created

  • assertErrorThresholdread 2026-09-27

    Assert on the errors of the transformations that made the frame

Azure Data Factory (1)
  • Fail activityread 2026-09-27

    Throw an error on purpose, with a custom error message and error code

Duckle (4)
  • Dead Letter Queueread 2026-09-25

    write rejected rows to a Parquet, CSV or JSON file

  • Die / Failread 2026-09-25

    fail the run with a message when a row-count condition holds

  • Retryread 2026-09-25

    passthrough marker carrying retry attempts and backoff for the stage

  • Try / Catchread 2026-09-25

    install a fallback pipeline that runs if a downstream stage fails

EasyMorph (1)
  • Halt/Warn on conditionread 2026-09-27

    Abort the run, or warn and continue, depending on a condition such as an empty table

KNIME Analytics Platform (7)
Pentaho Data Integration (1)
  • Abortread 2026-09-27

    Stop the running transformation when rows reach this step

Power Query M (2)
  • Error handlingread 2026-09-27

    4 functions: Error.Record, Diagnostics.Trace, Diagnostics.ActivityId, Diagnostics.CorrelationId

  • Table.ViewErrorread 2026-09-27

    Make an error record that a Table.View handler can raise without triggering local fallback

RapidMiner Studio (4)
  • Handle Exceptionread 2026-09-27

    Try a subprocess and run a catch subprocess if it fails

  • Throw Custom Errorread 2026-09-27

    Raise a user-defined error from inside a custom operator

  • Throw Exceptionread 2026-09-27

    Raise an error with a given message and stop the process

  • Try (Multiple)read 2026-09-27

    Try alternative subprocesses in turn until one completes without error

Talend (6)
  • tDieread 2026-09-27

    Throw an error for tLogCatcher and kill the Job

  • tESBProviderFaultread 2026-09-27

    Return the result of a Job cycle as a fault message of the web service the Job provides

  • tJobFailureread 2026-09-27

    Throw an exception with a given error type and message

  • tJobRejectread 2026-09-27

    Receive the rows rejected during task processing

  • tRouteFaultread 2026-09-27

    Send a message from the Job to a Mediation Route, marked as a fault

  • tWarnread 2026-09-27

    Raise a prioritised warning message for tLogCatcher without stopping the Job

VisiData (4)
  • allow-errorread 2026-09-23

    Suppress expected error messages matching a regex during replay

  • error-cellread 2026-09-23

    Open traceback for the error in current cell

  • error-recentread 2026-09-23

    Open traceback of the most recent error

  • errors-allread 2026-09-23

    Open sheet of recent errors

Background

Exception handling is the process of responding to anomalous or exceptional conditions that need special processing while a program runs.[1] An exception generally breaks the normal flow of execution and runs an exception handler registered in advance.[1] Common exceptions include an invalid argument, an unavailable resource such as a missing file, and running out of memory.[1]

When to use it

In extract, transform, load (ETL) processing, many transformations can raise exceptions, for example when a code translation meets an unknown code in the extracted data.[2] Which conditions count as exceptions is decided by the programmer: division by zero may be treated as an exception, or given a behaviour such as returning zero.[1] So the first decision is the error policy: for each check, whether a failure should stop the run, set the offending rows aside, try again, or only leave a warning. (Meridian's view)

In RapidMiner, the Handle Exception operator runs its Try subprocess and, if there is an error, runs its Catch subprocess instead of stopping the process.[3] In RapidMiner, the Handle Exception operator also covers unexpected errors, so it is meant to be used with care.[3] Wrap only the steps whose failure has a known, safe answer; a fallback around the whole pipeline hides the errors nobody expected. (Meridian's view) Keep retries for failures that are likely to pass, such as a busy or briefly unreachable service, and let a failure caused by the data itself stop the run or set its rows aside. (Meridian's view)

The method

Each procedure has a precondition, and an exception handling mechanism lets the procedure raise an exception when that precondition is violated, which the mechanism then handles.[1] Software exception handling developed in the 1960s and 1970s, and many programming languages adopted it widely from the 1980s onward.[1]

An exponential backoff algorithm reduces the rate of a process in response to adverse events, such as a failure to connect or an error response from a service.[4] In exponential backoff, the pause before each new attempt is multiplied by a fixed amount, so a client might try again after 1 second, then 2 seconds, then 4.[4] In Apache NiFi, the RetryFlowFile processor checks a retry count carried on each item against a configured maximum, and routes the item to an output named retries_exceeded once the count exceeds it.[5]

A database transaction must be atomic: it either completes in its entirety or has no effect whatsoever.[6] In KNIME, the DB Transaction End node commits the transaction if its body ran successfully, and otherwise rolls it back, returning the database to its state at the start of the transaction.[7] In data warehousing, a big ETL process is usually split into smaller pieces, and tagging each piece with a run identifier helps roll back and rerun a failed piece.[2]

In Talend, the tWarn component triggers a warning that is often caught by tLogCatcher, a component that collects and passes on log data.[8]

Used in

7 Protocols use this operation: