I'm using Cloudfront functions to set up a split url A/B test, one of the steps is to exclude bots as much as possible.
In order to do this I'm matching a regex against the User-Agent header to exclude obvious bots (GoogleBot, BingBot etc.) from the test.
So far so good.
However, when trying to test my function in the AWS console using the "Test function" functionality, I'm always getting a the error:
"Test execution failed: CloudFront encountered an internal error. Please try again.", when adding a header to the test request.
it works fine when testing without headers, cookies can be added just fine as well, it's just when adding a header that the test function breaks.
Even the function body itself doesn't seem to matter, as I can reproduce this with the default example function generated by AWS for new functions.
When having the dev tools open in my browser I can see the call to the Cloudfront API returning this response in the background:
<?xml version="1.0"?>
<ErrorResponse xmlns="http://cloudfront.amazonaws.com/doc/2020-05-31/"><Error><Type>Receiver</Type><Code>ServiceUnavailable</Code><Message>CloudFront encountered an internal error. Please try again.</Message></Error><RequestId>9fbf2678-6219-4dbe-8e60-5e4dd84757b4</RequestId></ErrorResponse>
Steps to reproduce:
- create new Cloudfront function
- create test request with a header (header name and value don't matter)
- submit test request