Documentation

Complete guide to webhooks, debugging, and real-time event monitoring with HookMetry

Webhook Timeout Issues

Most webhook providers have timeout limits (typically 5-30 seconds). If your endpoint doesn't respond in time, the webhook will fail.

Why Timeouts Happen

  • Slow Processing: Your server takes too long to process the webhook before responding
  • Database Queries: Synchronous database operations blocking the response
  • External API Calls: Waiting for third-party services during webhook handling
  • Server Overload: High traffic causing slow response times

Best Practices

DO: Respond Immediately

app.post('/webhook', async (req, res) => {
  // Validate signature
  if (!verifySignature(req.body, req.headers['x-signature'])) {
    return res.status(401).send('Invalid signature');
  }
  
  // Queue for background processing
  await queue.add('process-webhook', req.body);
  
  // Respond immediately
  res.status(200).json({ received: true });
  
  // ✅ Processing happens asynchronously
});

DON'T: Block on Heavy Operations

app.post('/webhook', async (req, res) => {
  // BAD: Slow operations before responding
  await sendEmailToCustomer(req.body);
  await updateDatabase(req.body);
  await callExternalAPI(req.body);
  
  res.status(200).send('OK'); // Too late!
});

Hookmetry Advantage:

Hookmetry endpoints always respond within milliseconds. Use webhook replay to test your actual server's response time without relying on provider retries.