---
title: Overview of error handling
slug: Overview-of-error-handling
description: On this page, you will find an overview of errors in Make and how error handlers help you manage unexpected issues, allowing your scenarios to continue running reliably even when a module fails.
image: https://archbee-image-uploads.s3.amazonaws.com/oAyFj2GHlBeBVWF5OAir2/paTVaDsEFdDjE7RBYx9Mz_11.png
docTags: 
createdAt: 2025-02-03T13:29:15.598Z
---

## What are error handlers

Error handlers are tools in Make that allow you to deal with errors or unexpected events in your scenario. An error handler is connected to a module and is the last module of the error handling route. When the module outputs an error, the error handler prevents the scenario from stopping. Instead, it intercepts the error and executes the scenario based on the error handler’s configuration.

## When to use error handlers

When your scenarios encounter errors, they hit a roadblock. If you have [incomplete executions](https://help.make.com/incomplete-executions) ON, your scenario stops and the execution is moved to the Incomplete executions tab. This is your **manual** queue. You must then manually intervene, identify the cause, fix the issue, and resume your scenario from where you left off.&#x20;

If you find yourself manually fixing the same recurring errors, you can introduce error handlers to **automate** the recovery process. Instead of letting the scenario stop and wait for you, an error handler allows the scenario to follow a predefined logic, such as retrying the task automatically or skipping the error, keeping your workflows moving without your intervention.

**For example**: You built a scenario that syncs contacts from a web from to your CRM. A user fills out a form on your website. Your scenario takes that data and sends it to your CRM. Your CRM configuration requires a phone number, but some users leave that field blank on your form. When you run your scenario, it fails.&#x20;

Without an error handler - The scenario stops. The contact isn't created in your CRM, and the execution moves to the Incomplete Executions tab (if enabled). You have to manually intervene, type in a dummy number such as "000-000-0000" in the phone number field, and continue.

With an error handler - To handle this issue, you add a Resume error handler. You instruct your Resume error handler to use a substitute value for missing phone numbers and continue the scenario. The scenario finishes successfully. The contact is created in HubSpot with the substitute date in the phone field, and you don't have to intervene further.

Since the error isn't a glitch that will fix itself (like a server being down), an incomplete execution would just sit there forever until you manually typed in a value. The Resume handler automates that for you by providing a substitute.

To maintain system reliability and operational integrity, Make automatically captures errors without stopping your scenarios or losing your data. This is done using **Error handlers** or error handling directives.&#x20;

:::hint{type="success"}
Make adheres to industry-standard error codes and definitions. However, it may be possible that the third party may not fully comply with these standards.
:::

## Different types of error handlers

The following topic provides a quick reference to working with error handlers in Make. If you want to learn more about individual error handlers, check the dedicated articles in this section of the Help Center.

**There are five error handlers in&#x20;**&#x4D;ak&#x65;**:**

::::VerticalSplit{layout="left"}
:::VerticalSplitItem
### Skip&#x20;
:::

:::VerticalSplitItem
The Skip error handler skips the error and removes the affected bundle from the scenario flow, allowing the scenario to continue with the next bundle. It’s useful when occasional invalid data is expected and doesn’t impact your process. It prevents the scenario from stopping and marks the run a&#x73;**&#x20;successful**, even if an error occurs.&#x20;

**Scenario stopped**: No

**Scenario status**: Success

To learn more, see the [Skip error handler](docId\:j9XCttcBfDwq3q3u144FN) page.&#x20;
:::
::::

***

::::VerticalSplit{layout="left"}
:::VerticalSplitItem
### Retry
:::

:::VerticalSplitItem
The Retry error handler removes the failing bundle from the scenario flow. It stores the error details and remaining steps as an incomplete execution, and allows the rest of the scenario to continue running.  Make retries the incomplete scenario runs according to your configuration or stores them until you resolve them yourself. Make﻿ processes the rest of the bundles in the scenario﻿ flow normally. The scenario ends with a **Warning&#x20;**&#x73;tatus.&#x20;

**Scenario stopped**: No

**Scenario status**: Warning

To learn more, see the [Retry error handler](docId\:cPTWi8yI45ZL3M5slzjNV) page.
:::
::::

***

::::VerticalSplit{layout="left"}
:::VerticalSplitItem
### Resume
:::

:::VerticalSplitItem
The Resume error handler replaces the failed module’s output with a predefined substitute output when an error occurs. If the module fails, the scenario continues to run using the substitute value in the subsequent steps. This allows the scenario to continue running smoothly using that data instead of stopping.&#x20;

**Scenario stopped**: No

**Scenario status**: Success

To learn more, see the [Resume error handler](docId\:wr8AAEME2pTFar38VXD3p) page.&#x20;
:::
::::

***

::::VerticalSplit{layout="left"}
:::VerticalSplitItem
### Commit
:::

:::VerticalSplitItem
The Commit error handler stops the scenario﻿ run and commits all changes made up to that point in the database apps. If the scenario doesn’t use transactional apps (such as MySQL or Data Store), the handler simply stops the scenario. ﻿Make﻿ doesn't process the rest of the modules in the scenario﻿ flow. The scenario ends with a **Warning&#x20;**&#x73;tatus.

**Scenario stopped**: Yes

**Scenario status**: Warning

To learn more, see the [Commit error handler error handler](docId\:vx_5byW32D43uwVobwE7t) page.&#x20;
:::
::::

***

::::VerticalSplit{layout="left"}
:::VerticalSplitItem
### Rollback&#x20;
:::

:::VerticalSplitItem
Make stops the scenario run and reverts any changes in modules that support transactions. The remaining modules are not processed, the scenario is deactivated after repeated runs with errors, and the run ends with an **error&#x20;**&#x73;tatus.

**Rollback** is the default error handling if you don't set any error handling and when you keep [incomplete executions](docId:6zZNn7v35hERRCJFccp9Q) disabled.

**Scenario stopped**: Yes

**Scenario status**: Error

To learn more, see the [Rollback error handler](docId:64Ex54PN88vgyeJrsX10g) page.
:::
::::

***

## The error handling route

In Make, an error handling route is visually identified by a transparent, dotted connection. These routes define the logic path the scenario follows when a module encounters an exception.

When an error handler activates, it doesn't consume operations. Make doesn't bill you for handling unexpected events in your scenario.

![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/wIOVHZfIGjdoU97tpYW9f-20260525-070544.png)



The error handling route doesn't have to have an error handler. For example, in the error handling route, there can be only a **Slack** > **Create a message** module to send you a Slack notification when an error occurs.

If no module outputs an error in the error handling route, Make skips the error. That means that the two error handling routes on the pictures work the same:

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/jKbAa9SXx0XZL0C6uuHs_-20260525-071835.png)
:::

:::VerticalSplitItem
![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/5sxaANTrU2YJFP3VtYBQq-20260525-071835.png)
:::
::::

If a module in the error handling route outputs an error, the scenario run ends with an error.

## How to approach error handling

You have multiple options on how to handle errors in Make. Make handles some of the most frequent errors by default, and you'll typically need custom error handling only when dealing with a specific issue.

The most frequent errors in running scenarios are the `RateLimitError` and `ConnectionError`. You can rely on the default error handling for these errors if you enable [incomplete executions](docId:6zZNn7v35hERRCJFccp9Q). The details of the error handling of these errors are in their [dedicated articles](docId\:oXGTALGVUR0yzKN_UX9wK).

If you need to handle a different error type or if you need to customize the default error handling, you should consider:

- How important is the data the scenario processes?
  For important scenarios, Make can store partial scenario runs in incomplete executions. You can resolve the incomplete scenario runs manually one by one or retry multiple of them at once.
- What type of error does the module output and how frequently?
  If the error occurs rarely and it's a temporary error, like the `RateLimitError`, you can rely on the default scenario error handling. But if the error is critical, like the `InvalidAccessTokenError` or `the InconsistencyError`, you should set up error handling.
- What is the impact of the error?
- If the error has no impact on your data or your processes, you could skip the error with the [Skip error handler](docId\:j9XCttcBfDwq3q3u144FN). If the error has a high impact on your processes, you should consider enabling incomplete executions in scenario settings.

For ideas about specific error handling strategies, you can check the [list of dedicated articles](docId\:xuAV7DqHvLAnlP6LrAMGP).

## Scenario settings that impact error handling

The scenario settings play a key role in error handling. The following list focuses on how some scenario settings influence error handling. For more info about Make settings, check the [dedicated article](docId\:evAR6qLowV4yyUnEyV-00).

### Store incomplete executions

Enable this option to store the incomplete scenario run when a module in the scenario outputs an error.

With incomplete executions enabled, Make stores the scenario state when the error happened as an incomplete execution. You can then check the scenario run, investigate why the error happened, and fix it to finish the scenario run successfully. In addition, all scenario errors turn into warnings.

- When you use the [Retry error handler](docId\:cPTWi8yI45ZL3M5slzjNV) in your scenario, you have to enable incomplete executions.
- Make doesn't store the incomplete scenario run in these conditions:
  - When the error happens on the first module in the scenario.
    However, you can add the **Retry** error handler to the first module in the scenario. With the **Retry** error handler, Make stores the incomplete execution even when the first module in the scenario outputs an error.
  - When your incomplete executions storage is full. If your incomplete executions storage is full, Make checks the [enable data loss](docId\:sN7McE4QmL-Q6wDTOOcSy) setting:
    - If the data loss is disabled, Make disables the scenario.
    - If the data loss is enabled, Make keeps scheduling scenario runs and discards the incomplete execution if it cannot be stored in your account.

You can read more about incomplete executions in the [dedicated article](docId:6zZNn7v35hERRCJFccp9Q).

:::hint{type="info"}
**Behavior when any preceding module has unprocessed output bundles**

When **Store incomplete executions&#x20;**&#x69;s enabled and a module fails while any preceding module still has output bundles waiting to be processed, the scenario does not stop. Instead:

\- The error is treated as a warning - the scenario continues running.
\- The failing bundle stops at the failing module and does not continue along its path.
\- The remaining pending bundles are processed immediately.
\- The errored execution is stored in th&#x65;**&#x20;Incomplete Executions** tab for review or retry.

The preceding module in question can be anything that emits more than one bundle from a single operation - an Iterator, a Search or List module returning multiple results, or a Router pushing the same bundle through several routes.
:::

### Process data in order

Enable this option to postpone running the scenario until the previous run finishes and until all scenario incomplete executions are resolved. Process data in order makes sure that:

- The scenario runs finish in the same order as they were triggered.
- There is only one scenario execution running at the same time.

Process data in order has the highest impact on scenarios that start with an instant trigger (a webhook) or on scenarios that have incomplete executions enabled.

Scenarios that start with an instant trigger run in parallel by default. For example:

If you have a scenario that starts with a webhook that runs for 5 minutes and you receive a webhook bundle at 12:00 and another one at 12:03, then from 12:03 to 12:05 there will be two instances of the scenario running at the same time in parallel.

In addition, if the scenario instance that started at 12:00 runs longer than usual, for example, until 12:12, the Make instance that started at 12:03 finishes sooner (at 12:08), even though it started later.

If you want to make sure that the scenario doesn’t start before the previous run finishes, enable the Process data in order.

See [Webhooks](docId:6NpTI6yVZkFtbSZMdl9EY) for more information.

:::hint{type="info"}
The same applies to scenarios with the incomplete executions enabled. When there is an error and Make creates an incomplete execution, Make postpones the next scenario run until you resolve the incomplete execution or until it’s resolved automatically with the **Retry** error handler.
:::

You can read more in the [scenario settings](docId\:evAR6qLowV4yyUnEyV-00).

### Enable data loss

The enable data loss scenario setting influences the scenario incomplete executions storage. Enable this option to keep scheduling scenario runs regardless of not having enough space to store incomplete executions.

If you enable data loss, Make discards the data that doesn't fit into the size limits and continues running the scenario on schedule. Otherwise, Make disables the scenario scheduling instead.

Make sets the size limits based on your organization plan. Check the Make [pricing](https://www.make.com/en/pricing) or read more about the [scenario settings](docId\:evAR6qLowV4yyUnEyV-00).

### Number of consecutive errors

This setting allows you to set how many times in a row the scenario can finish with an error and still keep being scheduled by Make for subsequent runs. When the scenario finishes with an error the specified number of times in a row, Make disables the scenario.

To access the setting of the number of consecutive errors, switch the advanced settings toggle in scenario settings. The default number of consecutive errors is 3.

The number of consecutive errors doesn't apply:

- When the scenario is triggered with an [Instant triggers](docId\:BkdEyuBelio6YvvCosRxJ) (webhook). Make disables instantly triggered scenario immediately if an error happens.
- When an error happens with one of the following types:
  - `AccountValidationError`
  - `OperationsLimitExceededError`
  - `DataSizeLimitExceededError`
    Make disables the scenario scheduling immediately after the error happens.
- When you get a warning. If a scenario finishes with a warning, Make will keep scheduling subsequent scenario runs.

### Auto-commit

Enable this option to commit changes right after they happen. For example, when a user triggers a scenario that updates their details.

If you disable this option, Make commits the changes after all modules execute successfully.

The setting affects only modules that support transactions. The modules supporting transactions are labeled with the "ACID" tag. They use a database app most of the time, like the Data Store or MySQL apps.

The modules that don't support transactions make changes immediately and don't provide the rollback functionality.

You can read more about the auto-commit option in the [scenario settings](docId\:evAR6qLowV4yyUnEyV-00) article.

### Commit trigger last

Enable this option to commit changes made by the first module in the scenario last. Otherwise, Make commits the changes in the same order as they happen.

The setting affects only modules that support transactions. The modules supporting transactions are labeled with the "ACID" tag. They use a database app most of the time, like the Data Store or MySQL apps.

The modules that don't support transactions make changes immediately and don't provide the rollback functionality.

You can read more about the commit trigger last option in the [scenario settings](docId\:evAR6qLowV4yyUnEyV-00) article.
