diff --git a/packages/cli/src/workflows/workflows.services.ts b/packages/cli/src/workflows/workflows.services.ts index 7bc0b38f93..902896ac12 100644 --- a/packages/cli/src/workflows/workflows.services.ts +++ b/packages/cli/src/workflows/workflows.services.ts @@ -1,6 +1,6 @@ import { validate as jsonSchemaValidate } from 'jsonschema'; import type { INode, IPinData, JsonObject } from 'n8n-workflow'; -import { jsonParse, LoggerProxy, Workflow } from 'n8n-workflow'; +import { NodeApiError, jsonParse, LoggerProxy, Workflow } from 'n8n-workflow'; import type { FindOptionsWhere } from 'typeorm'; import { In } from 'typeorm'; import pick from 'lodash.pick'; @@ -336,8 +336,12 @@ export class WorkflowsService { // Also set it in the returned data updatedWorkflow.active = false; + let message; + if (error instanceof NodeApiError) message = error.description; + message = message ?? (error as Error).message; + // Now return the original error for UI to display - throw new ResponseHelper.BadRequestError((error as Error).message); + throw new ResponseHelper.BadRequestError(message); } } diff --git a/packages/nodes-base/nodes/Mailchimp/MailchimpTrigger.node.ts b/packages/nodes-base/nodes/Mailchimp/MailchimpTrigger.node.ts index 8496778bbd..524edc6def 100644 --- a/packages/nodes-base/nodes/Mailchimp/MailchimpTrigger.node.ts +++ b/packages/nodes-base/nodes/Mailchimp/MailchimpTrigger.node.ts @@ -165,13 +165,8 @@ export class MailchimpTrigger implements INodeType { // select them easily async getLists(this: ILoadOptionsFunctions): Promise { const returnData: INodePropertyOptions[] = []; - let lists, response; - try { - response = await mailchimpApiRequest.call(this, '/lists', 'GET'); - lists = response.lists; - } catch (error) { - throw new NodeApiError(this.getNode(), error); - } + const response = await mailchimpApiRequest.call(this, '/lists', 'GET'); + const lists = response.lists; for (const list of lists) { const listName = list.name; const listId = list.id; @@ -200,8 +195,11 @@ export class MailchimpTrigger implements INodeType { try { await mailchimpApiRequest.call(this, endpoint, 'GET'); } catch (error) { - if (error.statusCode === 404) { - return false; + if (error instanceof NodeApiError && error.cause && 'isAxiosError' in error.cause) { + if (error.cause.statusCode === 404) { + return false; + } + throw error; } throw new NodeApiError(this.getNode(), error); }