Skip to content

Fix webhook delivery errors

Updated 1 min read
On this page/ Signature doesn't match

Every delivery attempt is logged under Settings › Integrations › Webhooks › Deliveries, with the status code your endpoint returned. Find the code below.

Response Likely cause Fix
401 / 403 Your endpoint requires auth Relaypoint doesn't send Verify the Relaypoint-Signature header instead
404 The URL changed Update the endpoint URL
413 Your server limits request size Allow bodies up to 1 MB
5xx Your server crashed handling the event Check your logs; replay once fixed
Timeout Your endpoint took over 10 seconds Respond first, process in the background

Signature doesn't match

The most common cause is verifying a parsed body instead of the raw bytes. Frameworks often re-serialise JSON, which changes whitespace and key order.

// Express: keep the raw body for this route only
app.post('/hooks/relaypoint', express.raw({ type: 'application/json' }), (req, res) => {
  if (!isValid(req.body, req.get('Relaypoint-Signature'), process.env.RELAYPOINT_SECRET)) {
    return res.sendStatus(400);
  }
  res.sendStatus(204);
  queue.add('relaypoint-event', JSON.parse(req.body));
});
Was this page helpful?