I’ve built a simple web-based chatbot (called Engineer’s Toolkit) that uses Amazon Lex, AWS Lambda, and API Gateway, with a static frontend hosted on S3.
The flow is supposed to be: Frontend (S3) → API Gateway (POST /chatbot) → Lambda function → Lex bot → response back to frontend.
However, when I type a message on the website and click Ask, the chatbot just shows “Thinking…” and never responds.
Here’s what I’ve checked so far:
Lambda function works fine when tested directly in the Lambda console — it responds correctly to test events.
CORS is enabled for the /chatbot resource in API Gateway.
Lambda proxy integration is turned ON.
Frontend config.js points to the correct Invoke URL:
https://4qdso1ron7.execute-api.us-east-1.amazonaws.com/prod/chatbot
- API is deployed to the prod stage.
When I test it directly in Postman using:
POST https://4qdso1ron7.execute-api.us-east-1.amazonaws.com/prod/chatbot Header: Content-Type: application/json Body: { "message": "hello" }
it times out (no response, no CloudWatch logs created).
CloudWatch logs show no new activity since Oct 16, meaning Lambda isn’t being triggered by API Gateway.
I suspect the problem lies in how API Gateway is integrated with Lambda, but I can’t figure out what’s missing.
What could cause API Gateway to not trigger a Lambda function, even when the integration type is set to Lambda Proxy, CORS is enabled, and the API is deployed to prod — resulting in no CloudWatch logs and no response?