When I enabled logging for my APIGW stage, I saw that the 500 was due to APIGW trying to transform the request body of my OPTIONS request and failing. There is no body, but I can see the APIGW thinks it has binary body content for some reason. I remembered that the Ions tutorial had me add “/” as a binary media type for the API. I’m not sure why this is. Is it just to get APIGW to pass the body through as-is? Anyway, when I remove that mapping, the OPTIONS method works and I can invoke the API via js in the browser, but the payload of my proxy method is now coming back base64 encoded. I thought maybe I would just change a setting on the response of my proxy integration to decode that on the way out, but I see that you can’t alter responses for a proxy integration.
I know this question is very heavy on APIGW details (the solution might be going to the non-proxy lambda integration), but I was thinking that this must be something that others have run into and was wondering if there was something I was missing.