I have an amazon ses node. If I input:
subject: test
body: test
then it sends successfully.
if i type in plain text the following, it errors:
subject: [my company] followup
body: anything that includes commas, parathesis, hyphens or colons. :,(,),
it alternates between two different errors depending on what I put in the subject or body
{
"message": "400 - """,
"name": "Error",
"stack": "Error: Request failed with status code 400 at createError (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/createError.js:16:15) at settle (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/settle.js:17:12) at IncomingMessage.handleStreamEnd (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/adapters/http.js:269:11) at IncomingMessage.emit (events.js:327:22) at endReadableNT (internal/streams/readable.js:1327:12) at processTicksAndRejections (internal/process/task_queues.js:80:21)"
}
Stack
NodeApiError: Bad request - please check your parameters
at Object.awsApiRequest (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Aws/SES/GenericFunctions.js:27:15)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Object.awsApiRequestSOAP (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Aws/SES/GenericFunctions.js:42:22)
at async Object.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Aws/SES/AwsSes.node.js:1047:40)
at async /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/src/WorkflowExecute.js:447:47
and then this:
{
"message": "403 - "<ErrorResponse xmlns=\"http://ses.amazonaws.com/doc/2010-12-01/\">\n <Error>\n <Type>Sender</Type>\n <Code>SignatureDoesNotMatch</Code>\n <Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.</Message>\n </Error>\n <RequestId>UUID</RequestId>\n</ErrorResponse>\n"",
"name": "Error",
"stack": "Error: Request failed with status code 403 at createError (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/createError.js:16:15) at settle (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/settle.js:17:12) at IncomingMessage.handleStreamEnd (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/adapters/http.js:269:11) at IncomingMessage.emit (events.js:327:22) at endReadableNT (internal/streams/readable.js:1327:12) at processTicksAndRejections (internal/process/task_queues.js:80:21)"
}
Stack
NodeApiError: Forbidden - perhaps check your credentials?
at Object.awsApiRequest (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Aws/SES/GenericFunctions.js:27:15)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Object.awsApiRequestSOAP (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Aws/SES/GenericFunctions.js:42:22)
at async Object.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Aws/SES/AwsSes.node.js:1047:40)
at async /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/src/WorkflowExecute.js:447:47
Following up. the things causing failure are: Square brackets in the subject causes the 400
And a COMMA in the body causes the 403 error. If that one comma in the last sentence is removed the email sends successfully.
Hello
We received a request to send you a Profile Questionnaire to register or update your profile with xxxx.
Please click here to continue:
If you didn’t request this, please ignore this email and well remove your email address.
Many thanks for reporting this! Sounds like it could be an encoding problem. I shall take a closer look into this once I have a bit more time if no one else gets to this first.
If I urlencode the subject or body, it will send anything. But of course it shows up as urlencoded in the received email.
It is hard to believe I’m the only one using the SES integration, or that I’m the first to find these issues. Which makes me wonder if it is something on my end? (Though I send a lot of email through SES with other systems that are using exactly the same text/encoding that doesn’t fail)
Hello guys, just wanted to leave my comment here as I’m having the same issue as OP. It confused me and I’m ashamed to admit that I wasted more time than I would’ve liked, from re-creating IAM user to rebuilding docker containers, etc. I ended up nailing it down to the semicolon, and after a couple of google searches I stumpled upon this thread. I was trying to send a link into the SES email body and the “:” part of the url made it crash with the same error as OP.
I can confirm the Send Email node works perfectly as a workaround, although for those who use SES templates, this might not work for them.
Hi @Hugh, thx for reminding me of this one. I was able to reproduce the problem and have added this to our internal bug tracker for a closer look & fix.