Troubleshooting

Signature Verification Failing

Symptom: WebhookVerificationError or equivalent when verifying.

CauseFix
Parsing the body before verifyingPass the raw bytes to the verification function, not a re-serialized object
CSRF middleware stripping headersDisable CSRF for your webhook endpoint path
Wrong signing secretCheck you are using the secret for the correct endpoint (each endpoint has its own)

Events Not Being Received

  1. Check your endpoint URL. Confirm it is reachable over HTTPS from the public internet
  2. Check the delivery log. Open the Webhooks page, select your endpoint, and check the message attempts for HTTP errors or timeouts.
  3. Check your endpoint is enabled. Endpoints are auto-disabled after 5 days of continuous failure. Re-enable in the platform.
  4. Check your subscription. Confirm you are subscribed to the event types you expect. If no event types are selected, all events are delivered.

Endpoint Returning Non-2xx

Any response other than 2xx is treated as a delivery failure and triggers a retry. Common mistakes:

  • Returning 4xx from signature verification failure: this causes retries even though the request was intentionally rejected. For permanent rejections (e.g. wrong endpoint), return 2xx and discard.
  • Timing out (>15 seconds): process webhooks asynchronously and return 2xx immediately.

Receiving Duplicate Events

This is expected. Medallion guarantees at-least-once delivery. Use the webhook-id header as a deduplication key. See Retry & Reliability.

Out-of-Order Events

Events are not guaranteed to arrive in order. Use the updated_at field in the payload to determine the correct sequence. If you receive an event with an updated_at earlier than the last event you processed for the same resource, discard it.

Replaying Missed Events

Open the Webhooks page, select your endpoint, and go to the Logs tab. Select the message you want to replay and click Replay. This re-delivers the original payload to your endpoint. Events can be replayed within 90 days of delivery.