I have an API Gateway with a LAMBDA_PROXY Integration Request Type. Upon calling context.succeed
in the Lambda, the response header is sent back with code 302
as expected (shown below). However, I want to handle 500
and 404
errors, and the only thing I am sure about so far, is that I am returning the error incorrectly as I am getting 502 Bad Gateway
. What is wrong with my context.fail
?
Here is my handler.js
const handler = (event, context) => {
//event consists of hard coded values right now
getUrl(event.queryStringParameters)
.then((result) => {
const parsed = JSON.parse(result);
let url;
//handle error message returned in response
if (parsed.error) {
let error = {
statusCode: 404,
body: new Error(parsed.error)
}
return context.fail(error);
} else {
url = parsed.source || parsed.picture;
return context.succeed({
statusCode: 302,
headers: {
Location : url
}
});
}
});
};