n8n-io/n8n · error

INVALID_PARAMETER

INVALID_PARAMETER

Error message

'${node.name}' sends an XML/SOAP payload but is configured as JSON. For XML, SOAP, CSV, or plain-text HTTP Request bodies, set sendBody=true, contentType='raw', put the payload in body, set rawContentType to an XML media type such as 'text/xml' or 'application/xml', and omit specifyBody/jsonBody/bodyParameters.

What it means

Error "'${node.name}' sends an XML/SOAP payload but is configured as JSON. For XML, SOAP, CSV, or plain-text HTTP Request bodies, set sendBody=true, contentType='raw', put the payload in body, set rawContentType to an XML media type such as 'text/xml' or 'application/xml', and omit specifyBody/jsonBody/bodyParameters." thrown in n8n-io/n8n.

Source

Thrown at packages/@n8n/workflow-sdk/src/workflow-builder/plugins/validators/http-request-validator.ts:126

			TEMPLATABLE_PLAIN_AUTH_TYPES.has(genericAuthType)
		) {
			const credentials = (node.config as { credentials?: Record<string, unknown> } | undefined)
				?.credentials;
			const credential = credentials?.[genericAuthType];
			if (credential === undefined || isNewCredentialSentinel(credential)) {
				issues.push({
					code: 'PLAIN_GENERIC_AUTH',
					message: `'${node.name}' creates a new ${genericAuthType} credential. Set genericAuthType to 'httpTemplatedCustomAuth' instead — \`Authorization: Bearer <token>\` becomes the template {"headers":{"Authorization":"Bearer {{api_key}}"}} — or credential setup will reject it. Plain generic types are only for reusing an existing credential.`,
					severity: 'warning',
					nodeName: node.name,
					parameterPath: 'genericAuthType',
				});
			}
		}

		if (params.contentType === 'json' && looksLikeXmlPayload(params.jsonBody)) {
			issues.push({
				code: 'INVALID_PARAMETER',
				message: `'${node.name}' sends an XML/SOAP payload but is configured as JSON. For XML, SOAP, CSV, or plain-text HTTP Request bodies, set sendBody=true, contentType='raw', put the payload in body, set rawContentType to an XML media type such as 'text/xml' or 'application/xml', and omit specifyBody/jsonBody/bodyParameters.`,
				severity: 'error',
				nodeName: node.name,
				parameterPath: 'jsonBody',
			});
		}

		if (
			params.sendBody === true &&
			params.contentType === 'raw' &&
			XML_MEDIA_TYPE_PATTERN.test(
				typeof params.rawContentType === 'string' ? params.rawContentType : '',
			) &&
			isMissingBody(params.body)
		) {
			issues.push({
				code: 'INVALID_PARAMETER',
				message: `'${node.name}' is configured for a raw XML/SOAP body but the body field is empty. Put the XML payload or an expression such as expr('{{ $json.soapBody }}') in body, keep contentType='raw' and rawContentType set to an XML media type, and omit specifyBody/jsonBody/bodyParameters.`,

View on GitHub (pinned to 5ac6606e81)

When it happens

Trigger: Thrown at packages/@n8n/workflow-sdk/src/workflow-builder/plugins/validators/http-request-validator.ts:126 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12). Data as JSON: /api/errors/2b07ed7c9ab66ae1. Report an issue: GitHub.