From 515c0cdf276cd77a3c52c52620cdb6df5d11d5d0 Mon Sep 17 00:00:00 2001 From: lookinway Date: Wed, 8 Apr 2026 15:30:08 +0300 Subject: [PATCH 1/2] fix(n8n): remove Content-Type form field from S3 upload (v2.0.4) Content-Type was sent as an S3 presigned POST form field but not included in the policy, causing Selectel S3 to reject uploads with 403 "Extra input fields: content-type". The file part's Content-Type header (which is separate) is preserved. --- integrations/n8n/CHANGELOG.md | 6 ++++++ integrations/n8n/README.md | 2 +- integrations/n8n/nodes/Pachca/GenericFunctions.ts | 1 - integrations/n8n/package.json | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/integrations/n8n/CHANGELOG.md b/integrations/n8n/CHANGELOG.md index 82337a41..82ac04cb 100644 --- a/integrations/n8n/CHANGELOG.md +++ b/integrations/n8n/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog +## 2.0.4 (2026-04-08) + +### Bug Fixes + +- Fix file upload 403 error — `Content-Type` was sent as an S3 form field but not included in the presigned policy, causing Selectel S3 to reject the upload with "Extra input fields: content-type" + ## 2.0.3 (2026-04-08) ### Improvements diff --git a/integrations/n8n/README.md b/integrations/n8n/README.md index f119c168..29c58083 100644 --- a/integrations/n8n/README.md +++ b/integrations/n8n/README.md @@ -24,7 +24,7 @@ Or install from archive (Docker, custom n8n images): # Download from GitHub Releases # Find the latest n8n-nodes-pachca.tgz at: # https://github.com/pachca/openapi/releases?q=n8n -wget https://github.com/pachca/openapi/releases/download/n8n-v2.0.2/n8n-nodes-pachca.tgz +wget https://github.com/pachca/openapi/releases/download/n8n-v2.0.4/n8n-nodes-pachca.tgz # Via npm (recommended) cd ~/.n8n/nodes && npm install ./n8n-nodes-pachca.tgz diff --git a/integrations/n8n/nodes/Pachca/GenericFunctions.ts b/integrations/n8n/nodes/Pachca/GenericFunctions.ts index 1f28abb2..edcf104d 100644 --- a/integrations/n8n/nodes/Pachca/GenericFunctions.ts +++ b/integrations/n8n/nodes/Pachca/GenericFunctions.ts @@ -743,7 +743,6 @@ export async function uploadFileToS3( const MAX_RETRIES = 3; for (let attempt = 0; attempt < MAX_RETRIES; attempt++) { const s3Fields: Record = { - 'Content-Type': contentType, 'Content-Disposition': String(presigned['Content-Disposition']), acl: String(presigned.acl), policy: String(presigned.policy), diff --git a/integrations/n8n/package.json b/integrations/n8n/package.json index 988ff10d..edfceafa 100644 --- a/integrations/n8n/package.json +++ b/integrations/n8n/package.json @@ -1,6 +1,6 @@ { "name": "n8n-nodes-pachca", - "version": "2.0.3", + "version": "2.0.4", "description": "Pachca node for n8n workflow automation", "license": "MIT", "main": "index.js", From 024317e152f37dd206f9094df08aff8721911675 Mon Sep 17 00:00:00 2001 From: lookinway Date: Wed, 8 Apr 2026 15:30:37 +0300 Subject: [PATCH 2/2] fix(n8n): simplify changelog entry --- integrations/n8n/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/n8n/CHANGELOG.md b/integrations/n8n/CHANGELOG.md index 82ac04cb..b0faa228 100644 --- a/integrations/n8n/CHANGELOG.md +++ b/integrations/n8n/CHANGELOG.md @@ -5,7 +5,7 @@ ### Bug Fixes -- Fix file upload 403 error — `Content-Type` was sent as an S3 form field but not included in the presigned policy, causing Selectel S3 to reject the upload with "Extra input fields: content-type" +- Fix file upload 403 error ## 2.0.3 (2026-04-08)