Hey everyone ![]()
tl;dr:
Postman AWS Signature → works ![]()
n8n AWS auth → InvalidSignatureException: Credential should be scoped to a valid region. ![]()
I’ve been working on an n8n workflow that creates shipments by sending a POST request to an AWS API Gateway endpoint.
It works perfectly in Postman, but when I run it in n8n, I keep getting the following error:
{
"message": "Credential should be scoped to a valid region."
}
In Postman, I’m using AWS Signature (SigV4) auth with the same access key, secret key, region (ca-central-1), and service (execute-api), and it works perfectly.
In n8n, I’m using the built-in AWS credentials, and while the request signs and sends, AWS rejects it with the “invalid region scope” error.
Current n8n HTTP Request Node setup:
- Authentication: Predefined Credential Type → AWS
- Region: ca-central-1
- Service: execute-api
- Method: POST
- URL: https://lzj4acib8d.execute-api.ca-central-1.amazonaws.com/prod/shipments
- Headers:
Content-Type: application/json
x-api-key: <API key>
I know the JSON payloads are valid — I manually posted them from Postman successfully.
The API key is correct (you can see it in the screenshots).
I even tried switching the region to us-east-1 as some suggested, but that didn’t fix it either.
Additional context
I actually had this same setup working in our demo environment (screenshot below).
In that case, the request succeeded when I used a Bearer token + API key, both sent through headers.
For production, the Bearer token is not required, since I’m already authenticated via AWS keys.
My theory: n8n might not be properly scoping the signature to ca-central-1/execute-api,
or API Gateway expects a slightly different canonical header order than n8n generates.
Any help or working example configs would be super appreciated — I’m 99% sure the setup is right, but AWS keeps saying my signature is scoped wrong ![]()

