---
title: Resume error handler
slug: resume-error-handler
description: Add Resume error handler to set a substitute value for a failed module and continue scenario processing
image: https://archbee-image-uploads.s3.amazonaws.com/oAyFj2GHlBeBVWF5OAir2/CJH0xfFW97P_NrVncUCsN_11.png
docTags: 
createdAt: 2025-02-03T13:29:13.656Z
---

The **Resume** error handler replaces a failed bundle with a substitute output that you define. When an error occurs, the rest of the scenario continues using that substitute data. All remaining bundles in the scenario flow are processed normally.&#x20;

**When to use it**: Use the Resume error handler when you have a substitute mapping that allows the bundle to continue through the scenario flow. You can use it as a placeholder to flag the bundle for review later.

For example: Amy retrieves a list of new user sign-ups. She uses Make to send a welcome email to each user. One user has no email address recorded, producing an error. She uses Resume error handler to substitute the missing email with a placeholder such as *unknown\@company.com*. The scenario continues processing the remaining users as normal. The failed bundle is logged against the placeholder address for review, while every other users receive their welcome email.

For more information about error handling strategies check the [Overview of error handling](docId\:sN7McE4QmL-Q6wDTOOcSy) .

### How the Resume error handler works

When a module encounters an error, the Resume error handler substitutes the failed bundle with custom data defined in the error handler's settings. Instead of dropping or pausing the scenario, Make replaces it with your substitute mapping and continues the scenario flow as normal.

Unlike the Skip error handler, the bundle is not removed from the flow — it continues through the remaining modules using the substitute data.

### Use the Resume error handler

In this example, we have a scenario that updates a data store and then sends a Slack message. If the data store update fails because of a missing value, it simply replaces it with a substitute value and the scenario continues as usual.&#x20;

This demo scenario contains five modules.

1. **JSON** - **Parse JSON** provides test data in the form of an array of three record IDs.
2. **Iterator** splits the array into individual bundles.
3. **Data store** - **Update a record**: Updates the data in the data store.
4. **Data store** - **Update a record**: This module updates the data again. This time the module works differently. In the module mapping, there is a mapping that intentionally creates an error:

::Image[]{src="https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/IGuzVI2USP_2J2uaI6DiO_uuid-38a27efa-f066-3ba0-d77f-c1fac59dbb6a.png" size="100" width="882" height="254" position="center" darkWidth="882" darkHeight="254" showCaption="false" indent="2"}

5. The mapping inserts a `null` value into the required **Key** field, which always creates the `BundleValidationError`.
6. **Slack** - **Send a message**: Sends a message to a private testing channel.

This is how the example scenario looks:

![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/hAt8L-RCHcqlRX1Zv9ITu_uuid-a20c3804-3600-efbd-3e63-6ee8604bee5a.png)

When we would run the example scenario, we would get the `BundleValidationError`:

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/eV9s60is4o30uYvPGyHHU_uuid-d0cd6900-234c-21a1-c35c-e5ee696e538c.png)
:::

:::VerticalSplitItem
![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/CNPg8JnCTdNcxaACINlIU_uuid-5e505ecc-ffa2-af6c-9a23-e625392bf169.png)
:::
::::



**Let's see how to handle this error using a Resume error handler**.

::::WorkflowBlock
:::WorkflowBlockItem
Right-click the module that is causing the error. In the menu, select **Add error handler**.
:::

:::WorkflowBlockItem
Select the **Resume** error handler.
:::

:::WorkflowBlockItem
Fill in the **Resume** handler settings with your custom mapping.
:::

:::WorkflowBlockItem
Save your scenario.
:::
::::

You've successfully added the Resume  error handler to your scenario.&#x20;

**What happens when you run the scenario after you add a Resume error handler.**

Since we added the **Resume** error handler to the **Update a record** module, the **Resume** error handler would replace the bundle with the substitute mapping. When the module outputs an error, Make would use the substitute bundle instead. The third bundle runs through the scenario.

In the **Resume** error handler settings, you get the same fields as in the handled module settings. In the error handler fields, you can provide custom data that Make uses instead of the bundle that caused the error.

![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/Yz73p1jVq4BK8dC5T7VZn_uuid-1a455b15-b789-055f-bf34-2144fcf94370.png)

You can use the **Resume** error handler when you have a substitute mapping that fixes the bundle and allows the data bundle to continue in the scenario flow. You can also use the **Resume** error handler to add a placeholder that marks the data bundle to check later.

![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/Yz73p1jVq4BK8dC5T7VZn_uuid-1a455b15-b789-055f-bf34-2144fcf94370.png)

