Describe the problem/error/question
I am trying to upload an image to a self-hosted WordPress site using the HTTP Request node. The node consistently fails with a 500 rest_upload_unknown_error, but an identical request sent via Postman from my local machine succeeds every time.
This indicates the issue is not with WordPress permissions or credentials, but a very subtle difference in how N8N constructs the multipart/form-data request.
I have debugged this by intercepting the raw requests from both N8N and Postman using Webhook.site. I have systematically eliminated every difference in the headers (Content-Disposition, Accept, User-Agent) and authentication method, but the N8N request continues to fail.
The only remaining difference is the source IP address:
-
Postman (Working): My local residential IP.
-
N8N (Failing): My AWS Lightsail server’s datacenter IP.
This points to a server-side firewall rule that blocks file uploads from the N8N server’s IP. However, before I go down that path (as I currently lack direct server access), I want to ask the community if there is any other known N8N quirk, node option, or subtle configuration I might have missed that could explain this behavior.
What is the error message (if any)?
The HTTP Request node returns a 500 status code with the following JSON body from WordPress:
{
"code": "rest_upload_unknown_error",
"message": "Sorry, you are not allowed to upload this file type.",
"data": {
"status": 500
}
}
This error message is misleading, as the failure occurs even when uploading a standard JPEG file.
Please share your workflow
This workflow isolates the two key nodes: the Edit Image node which prepares the binary data, and the failing HTTP Request node.
Share the output returned by the last node
The Upload to WordPress (HTTP Request) node fails and returns this object:
{
"errorMessage": "The service was not able to process your request",
"errorDescription": "Sorry, you are not allowed to upload this file type.",
"errorDetails": {
"rawErrorMessage": [
"500 - \"{\\\"code\\\":\\\"rest_upload_unknown_error\\\",\\\"message\\\":\\\"Sorry, you are not allowed to upload this file type.\\\",\\\"data\\\":{\\\"status\\\":500}}\""
],
"httpCode": "500"
},
"n8nDetails": {
"nodeName": "Upload Featured Image to WP",
"nodeType": "n8n-nodes-base.httpRequest",
"nodeVersion": 4.2,
"itemIndex": 0,
"time": "7/9/2025, 6:25:02 PM",
"n8nVersion": "1.94.1 (Self Hosted)",
"binaryDataMode": "default",
"stackTrace": [
"NodeApiError: The service was not able to process your request",
" at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@[email protected]_asn1.js@5_12b981d6b49d407a163f4d5244314033/node_modules/n8n-nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts:769:15)",
" at processTicksAndRejections (node:internal/process/task_queues:95:5)",
" at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@[email protected][email protected][email protected]_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1185:9)",
" at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@[email protected][email protected][email protected]_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1534:27",
" at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@[email protected][email protected][email protected]_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2098:11"
]
}
}
Information on your n8n setup
-
n8n version: 1.94.1
-
Database (default: SQLite): PostgreSQL
-
n8n EXECUTIONS_PROCESS setting (default: own, main): main (default)
-
Running n8n via (Docker, npm, n8n cloud, desktop app): Docker on Railway
-
Operating system: Linux (via Docker)