Make Skip vs Resume: what happens to a failed record?
Compare Make Skip and Resume with the same three-record example. Check which records continue, why success can hide a lost record, and how to mark a replacement for review.

Skip (formerly Ignore) removes a failed record from the rest of a Make scenario. Resume supplies replacement output so that record can continue, according to Make's Skip (opens in a new tab) and Resume (opens in a new tab) guidance.
This Make Free practice uses three fictional product records to show the difference. The middle record contains invalid JSON. You will check which values reach the later Tools module, then fix the input and run it again.
Before you start
To get started, you need a Make account. You can create a Make Free account (opens in a new tab) or sign in. Keep the scenario Inactive and use Run once. No email, spreadsheet or other app connection is needed. Each run uses some of your plan's credits.
1. Create three practice records
- In Scenarios, click Create scenario. Name it Skip and Resume practice.
- Add JSON > Parse JSON. Leave Data structure unset and paste the object below into JSON string.
- Save the module and scenario, then click Run once. If Make warns that the output is unused, choose Save anyway or Run anyway for this practice.
- Open the JSON result bubble and expand records. Check that it contains three items, with IDs A, B and C.
- Add Flow Control > Iterator using the plus after JSON. Map records[] from the first module into Array, then save.
{"records":[{"id":"A","payload":"{\"name\":\"Notebook\"}"},{"id":"B","payload":"not-json"},{"id":"C","payload":"{\"name\":\"Pencil\"}"}]}
The outer object is valid JSON. B's payload is deliberately invalid text, which the later parser will try to read. The Iterator turns the array into separate bundles, one for each record.
2. Check where the failed record stops
- Add a second JSON > Parse JSON after the Iterator. Map the Iterator's payload into JSON string.
- Beside Data structure, click Add. Name it Practice product name, click Generate, and use JSON as the content type.
- Enter
{"name":"Notebook"}in Sample data. Click Generate, then save the structure and module. The generated text field is labelled Name.
- Add Tools > Set variable after this parser. Set Variable name to
result. - For Variable value, map the Iterator's id, type a colon and a space, then map the second parser's Name. With module numbers 2 and 3, the expression below does that. Replace the numbers if yours differ, and check that the fields appear as coloured tokens.
- Save and click Run once. The second parser reports Source is not valid JSON. Open the Tools result bubble: only
A: Notebookshould have reached it.
{{2.id}}: {{3.name}}
3. Use Skip to drop the bad record
- Close the result panel. Right-click the second JSON module and select Add error handler.
- Choose Skip. Save its configuration, then save the scenario.
- Click Run once. Open the Tools result bubble and expand each Operation.
- Check for two results in Tools:
A: NotebookandC: Pencil. B should be absent.
Watch out
A successful run can still have lost a record. Count the downstream results and check their IDs. Use Skip only when dropping that record is acceptable. A replacement value also needs to be safe for every step that follows.
4. Use Resume to supply a marked replacement
- In this practice scenario, right-click the Skip handler and select Delete. Keep both JSON modules and the Iterator.
- Right-click the second JSON module again, choose Add error handler, then Resume.
- In Resume's Name field, enter
REVIEW INPUT. Save the handler and scenario.
- Click Run once and inspect all three Tools operations.
- Check for
A: Notebook,B: REVIEW INPUTandC: Pencil. The middle result comes from your substitute, not from successfully parsing B.
Resume replaces the failed module's output. It does not retry that action or repair the original text. Here, REVIEW INPUT makes the unresolved record visible. Do not feed a placeholder into a real payment, message or record-writing step unless that step can safely handle it.
5. Fix the input and run again
- Run the unchanged example once more. B should still return
REVIEW INPUT. - Open the first JSON module. Replace B's
not-jsonpayload with{"name":"Eraser"}, keeping it escaped as a string inside the outer object. The complete corrected input is below. - Save both the module and scenario, then click Run once. Check that B now returns
B: Eraser. - Keep the practice Inactive. A new run processes the source records again; the handler does not remember which ones you previously reviewed.
{"records":[{"id":"A","payload":"{\"name\":\"Notebook\"}"},{"id":"B","payload":"{\"name\":\"Eraser\"}"},{"id":"C","payload":"{\"name\":\"Pencil\"}"}]}
If every record must be processed
Choose an error-handling approach that retains the failed work for investigation. Skip is suitable only when omitting that record is acceptable. Resume needs a replacement value that later steps can safely handle, plus a way to review the unresolved record. If the problem is a predictable blank field, consider preventing it with a filter or ifempty before the action. Make's missing-data guidance (opens in a new tab) explains those options.
This practice only sets a variable. Before adding a module that creates or updates records, decide how repeat runs will avoid duplicates. See the separate Data Store duplicate-record guide and check Make Free's limits before scheduling a larger workflow.
To compare Skip and Resume with the same fictional records, start with Make Free (opens in a new tab). Run the practice manually and inspect the failed record before connecting an action that sends or writes anything.
Sources: Make's Skip, Resume and missing-data guidance linked above. Screenshots show fictional practice data in Make Free.
Share this guide
From holdmytwist.com/guides/make-skip-vs-resume-error-handler/


