# Common Issues Quick diagnostics for Zoom Webhooks integrations. ## Signature Verification Fails (401 / "Invalid signature") **Common causes**: - You are computing the HMAC over a **re-serialized** body (different whitespace/key order). - You are using the wrong secret (webhook secret vs OAuth secret). - You are not including the `v0:{timestamp}:{body}` prefix exactly. **Fix**: - Verify signatures using the exact raw request body bytes (capture raw body before JSON parsing). - Validate both `x-zm-signature` and `x-zm-request-timestamp` and reject stale timestamps (replay protection). See: [verification.md](../references/verification.md) ## Timeouts / Retries / Duplicate Events **Symptom**: Zoom retries delivery, you process the same event multiple times. **Fix**: - Respond fast (acknowledge ASAP, then enqueue work). - Make handlers idempotent (dedupe by event ID/timestamp + payload identifiers). ## URL Validation Fails **Symptom**: You can’t enable the webhook endpoint in Marketplace; validation fails. **Fix**: - Implement `endpoint.url_validation` response correctly (plainToken + encryptedToken). See: [verification.md](../references/verification.md)