diff --git a/apps/sim/tools/confluence/add_label.ts b/apps/sim/tools/confluence/add_label.ts index db931b3cf0..2ba111f529 100644 --- a/apps/sim/tools/confluence/add_label.ts +++ b/apps/sim/tools/confluence/add_label.ts @@ -34,6 +34,8 @@ export const confluenceAddLabelTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/create_blogpost.ts b/apps/sim/tools/confluence/create_blogpost.ts index b39e91b7f1..e67e0f0732 100644 --- a/apps/sim/tools/confluence/create_blogpost.ts +++ b/apps/sim/tools/confluence/create_blogpost.ts @@ -44,6 +44,8 @@ export const confluenceCreateBlogPostTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/create_comment.ts b/apps/sim/tools/confluence/create_comment.ts index aa18a5c4a0..b09c6ddb54 100644 --- a/apps/sim/tools/confluence/create_comment.ts +++ b/apps/sim/tools/confluence/create_comment.ts @@ -31,6 +31,8 @@ export const confluenceCreateCommentTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/create_page.ts b/apps/sim/tools/confluence/create_page.ts index 7a4fec8a84..f4f70bc4af 100644 --- a/apps/sim/tools/confluence/create_page.ts +++ b/apps/sim/tools/confluence/create_page.ts @@ -40,6 +40,8 @@ export const confluenceCreatePageTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/create_page_property.ts b/apps/sim/tools/confluence/create_page_property.ts index 36ebfb04a0..99fbe246fd 100644 --- a/apps/sim/tools/confluence/create_page_property.ts +++ b/apps/sim/tools/confluence/create_page_property.ts @@ -38,6 +38,8 @@ export const confluenceCreatePagePropertyTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/create_space.ts b/apps/sim/tools/confluence/create_space.ts index f2d8b8a734..4981c4adc2 100644 --- a/apps/sim/tools/confluence/create_space.ts +++ b/apps/sim/tools/confluence/create_space.ts @@ -39,6 +39,8 @@ export const confluenceCreateSpaceTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/create_space_property.ts b/apps/sim/tools/confluence/create_space_property.ts index c702f63539..e6fee973b8 100644 --- a/apps/sim/tools/confluence/create_space_property.ts +++ b/apps/sim/tools/confluence/create_space_property.ts @@ -35,6 +35,8 @@ export const confluenceCreateSpacePropertyTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/delete_attachment.ts b/apps/sim/tools/confluence/delete_attachment.ts index 37d2d093d8..38159ee4d6 100644 --- a/apps/sim/tools/confluence/delete_attachment.ts +++ b/apps/sim/tools/confluence/delete_attachment.ts @@ -30,6 +30,8 @@ export const confluenceDeleteAttachmentTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/delete_blogpost.ts b/apps/sim/tools/confluence/delete_blogpost.ts index c53562cf28..6d03a3f60e 100644 --- a/apps/sim/tools/confluence/delete_blogpost.ts +++ b/apps/sim/tools/confluence/delete_blogpost.ts @@ -31,6 +31,8 @@ export const confluenceDeleteBlogPostTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/delete_comment.ts b/apps/sim/tools/confluence/delete_comment.ts index 6564181dfe..7cfb169498 100644 --- a/apps/sim/tools/confluence/delete_comment.ts +++ b/apps/sim/tools/confluence/delete_comment.ts @@ -30,6 +30,8 @@ export const confluenceDeleteCommentTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/delete_label.ts b/apps/sim/tools/confluence/delete_label.ts index 2f92766fc6..182dd06634 100644 --- a/apps/sim/tools/confluence/delete_label.ts +++ b/apps/sim/tools/confluence/delete_label.ts @@ -33,6 +33,8 @@ export const confluenceDeleteLabelTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/delete_page.ts b/apps/sim/tools/confluence/delete_page.ts index a648a2b37c..bc7be2b893 100644 --- a/apps/sim/tools/confluence/delete_page.ts +++ b/apps/sim/tools/confluence/delete_page.ts @@ -32,6 +32,8 @@ export const confluenceDeletePageTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/delete_page_property.ts b/apps/sim/tools/confluence/delete_page_property.ts index d7b6c5fbb4..0bd4d04911 100644 --- a/apps/sim/tools/confluence/delete_page_property.ts +++ b/apps/sim/tools/confluence/delete_page_property.ts @@ -33,6 +33,8 @@ export const confluenceDeletePagePropertyTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/delete_space.ts b/apps/sim/tools/confluence/delete_space.ts index 82442c66ad..c9fa5cb315 100644 --- a/apps/sim/tools/confluence/delete_space.ts +++ b/apps/sim/tools/confluence/delete_space.ts @@ -31,6 +31,8 @@ export const confluenceDeleteSpaceTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/delete_space_property.ts b/apps/sim/tools/confluence/delete_space_property.ts index 9c69431aac..0f2a29dfdd 100644 --- a/apps/sim/tools/confluence/delete_space_property.ts +++ b/apps/sim/tools/confluence/delete_space_property.ts @@ -33,6 +33,8 @@ export const confluenceDeleteSpacePropertyTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/get_blogpost.ts b/apps/sim/tools/confluence/get_blogpost.ts index 94c9b02de7..c61d489411 100644 --- a/apps/sim/tools/confluence/get_blogpost.ts +++ b/apps/sim/tools/confluence/get_blogpost.ts @@ -49,6 +49,8 @@ export const confluenceGetBlogPostTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/get_page_ancestors.ts b/apps/sim/tools/confluence/get_page_ancestors.ts index 20b7be3ca2..2e3ea9714e 100644 --- a/apps/sim/tools/confluence/get_page_ancestors.ts +++ b/apps/sim/tools/confluence/get_page_ancestors.ts @@ -39,6 +39,8 @@ export const confluenceGetPageAncestorsTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/get_page_children.ts b/apps/sim/tools/confluence/get_page_children.ts index 7ca7ca10ed..a7691245ea 100644 --- a/apps/sim/tools/confluence/get_page_children.ts +++ b/apps/sim/tools/confluence/get_page_children.ts @@ -42,6 +42,8 @@ export const confluenceGetPageChildrenTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/get_page_descendants.ts b/apps/sim/tools/confluence/get_page_descendants.ts index a9e0bc5a32..9fdb821333 100644 --- a/apps/sim/tools/confluence/get_page_descendants.ts +++ b/apps/sim/tools/confluence/get_page_descendants.ts @@ -43,6 +43,8 @@ export const confluenceGetPageDescendantsTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/get_page_version.ts b/apps/sim/tools/confluence/get_page_version.ts index dc496b38a2..a67b709295 100644 --- a/apps/sim/tools/confluence/get_page_version.ts +++ b/apps/sim/tools/confluence/get_page_version.ts @@ -54,6 +54,8 @@ export const confluenceGetPageVersionTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/get_pages_by_label.ts b/apps/sim/tools/confluence/get_pages_by_label.ts index af67210a0b..0220341ed1 100644 --- a/apps/sim/tools/confluence/get_pages_by_label.ts +++ b/apps/sim/tools/confluence/get_pages_by_label.ts @@ -47,6 +47,8 @@ export const confluenceGetPagesByLabelTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/get_space.ts b/apps/sim/tools/confluence/get_space.ts index fbadd7a657..178ec6e21f 100644 --- a/apps/sim/tools/confluence/get_space.ts +++ b/apps/sim/tools/confluence/get_space.ts @@ -42,6 +42,8 @@ export const confluenceGetSpaceTool: ToolConfig< provider: 'confluence', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/confluence/get_task.ts b/apps/sim/tools/confluence/get_task.ts index cf0b617765..21c2c5c428 100644 --- a/apps/sim/tools/confluence/get_task.ts +++ b/apps/sim/tools/confluence/get_task.ts @@ -41,6 +41,8 @@ export const confluenceGetTaskTool: ToolConfig errorInfo?.data?.errorMessage, + description: + 'Atlassian REST API error formats (errorMessage, errorMessages, errors[].title, message)', + examples: ['Jira', 'Jira Service Management', 'Confluence', 'JSM Forms/ProForma'], + extract: (errorInfo) => { + // JSM Service Desk: singular errorMessage string + if (errorInfo?.data?.errorMessage) { + return errorInfo.data.errorMessage + } + // Jira Platform: errorMessages array + if ( + Array.isArray(errorInfo?.data?.errorMessages) && + errorInfo.data.errorMessages.length > 0 + ) { + return errorInfo.data.errorMessages.join(', ') + } + // Confluence v2 / Forms API: RFC 7807 errors array with title/detail + if (Array.isArray(errorInfo?.data?.errors) && errorInfo.data.errors.length > 0) { + const err = errorInfo.data.errors[0] + if (err?.title) { + return err.detail ? `${err.title}: ${err.detail}` : err.title + } + } + // Jira Platform field-level errors object + if (errorInfo?.data?.errors && !Array.isArray(errorInfo.data.errors)) { + const fieldErrors = Object.entries(errorInfo.data.errors) + .map(([field, msg]) => `${field}: ${msg}`) + .join(', ') + if (fieldErrors) return fieldErrors + } + // Generic message fallback (auth/gateway errors) + if (errorInfo?.data?.message) { + return errorInfo.data.message + } + return undefined + }, }, { id: 'graphql-errors', diff --git a/apps/sim/tools/jira/add_attachment.ts b/apps/sim/tools/jira/add_attachment.ts index bd890e509e..b9eeba374c 100644 --- a/apps/sim/tools/jira/add_attachment.ts +++ b/apps/sim/tools/jira/add_attachment.ts @@ -14,6 +14,8 @@ export const jiraAddAttachmentTool: ToolConfig = provider: 'jira', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/jira/update_comment.ts b/apps/sim/tools/jira/update_comment.ts index 526e724fb4..e49fa24833 100644 --- a/apps/sim/tools/jira/update_comment.ts +++ b/apps/sim/tools/jira/update_comment.ts @@ -31,6 +31,8 @@ export const jiraUpdateCommentTool: ToolConfig = { provider: 'jira', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/jsm/add_comment.ts b/apps/sim/tools/jsm/add_comment.ts index e23069a138..a06caaf36c 100644 --- a/apps/sim/tools/jsm/add_comment.ts +++ b/apps/sim/tools/jsm/add_comment.ts @@ -13,6 +13,8 @@ export const jsmAddCommentTool: ToolConfig = { provider: 'jira', }, + errorExtractor: 'atlassian-errors', + params: { accessToken: { type: 'string', diff --git a/apps/sim/tools/jsm/get_transitions.ts b/apps/sim/tools/jsm/get_transitions.ts index d864cf747d..d439c174ce 100644 --- a/apps/sim/tools/jsm/get_transitions.ts +++ b/apps/sim/tools/jsm/get_transitions.ts @@ -14,6 +14,8 @@ export const jsmGetTransitionsTool: ToolConfig