Vapi Support Bot
11/24/2025, 10:59 AMjs
app.post('/webhook', async (req, res) => {
const { type } = req.body;
if (!['assistant.started', 'speech-update', 'status-update'].includes(type)) {
return res.status(400).send('Invalid webhook type');
}
// Handle events here
res.status(200).send();
});
Update your Vapi dashboard to point to your public webhook URL (e.g., from ngrok) and ensure your handler accepts all relevant event types.
For more details, see the [webhook troubleshooting guide](https://docs.vapi.ai/cli/webhook).
Source:
- [Vapi Webhook Troubleshooting Guide](https://docs.vapi.ai/cli/webhook)Chiranjeet Mishra
11/24/2025, 8:31 PMendedReason codes:
- `silence-timed-out`: The call ended due to prolonged silence.
- `assistant-error`: An error occurred in the assistant's logic or processing.
- `call.in-progress.error-assistant-did-not-receive-customer-audio`: No customer audio was received, which might lead to silence and call termination.
- call.in-progress.error-providerfault-* or `call.in-progress.error-vapifault-*`: These errors indicate issues within the processing pipeline or provider faults.
To address this, consider checking your call logs for specific endedReason codes which might give more insights. You may want to verify that the assistant's configuration does not have unexpected settings or that there are no misconfigurations related to audio permissions. For deeper investigation into errors, you might need to delve into [this guide](https://docs.vapi.ai/calls/call-ended-reason) for more details.
If the issue persists, reviewing the assistant's logic or making sure that the integration with tools is functioning correctly would be beneficial. Let me know if there's anything else specific you need help with.