All skills
Skillintermediate

Require continueOnFail() handling in execute() methods of node classes (`@n8n/community-nodes/require-continue-on-fail`)

šŸ’¼ This rule is enabled in the following configs: āœ… `recommended`, ā˜‘ļø `recommendedWithoutN8nCloudSupport`.

Claude Code Knowledge Pack7/10/2026

Overview

Require continueOnFail() handling in execute() methods of node classes (@n8n/community-nodes/require-continue-on-fail)

šŸ’¼ This rule is enabled in the following configs: āœ… recommended, ā˜‘ļø recommendedWithoutN8nCloudSupport.

Rule Details

Ensures that execute() methods in node classes include a this.continueOnFail() check. Without this, a single item error will abort the entire workflow instead of allowing execution to continue past the failing item.

Examples

āŒ Incorrect


  description: INodeTypeDescription = { /* ... */ };

  async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
    const items = this.getInputData();
    const returnData: INodeExecutionData[] = [];
    for (let i = 0; i < items.length; i++) {
      // No error handling — one bad item kills the whole workflow
      const result = await someApiCall(items[i]);
      returnData.push({ json: result });
    }
    return [returnData];
  }
}

āœ… Correct


  description: INodeTypeDescription = { /* ... */ };

  async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
    const items = this.getInputData();
    const returnData: INodeExecutionData[] = [];
    for (let i = 0; i < items.length; i++) {
      try {
        const result = await someApiCall(items[i]);
        returnData.push({ json: result });
      } catch (error) {
        if (this.continueOnFail()) {
          returnData.push({ json: { error: error.message }, pairedItem: { item: i } });
          continue;
        }
        throw error;
      }
    }
    return [returnData];
  }
}