Webhook troubleshooting
Common failure modes and how Botely retries.
Retry schedule
On 5xx, 408, 425, 429, or network errors Botely re-attempts after 30 s, 2 min, 10 min, 1 h, and 6 h.
After your configured `retryMax` failed attempts the delivery is moved to dead_letter and surfaces in the dashboard. The default is 5; raise it up to 20 in /app/settings/webhooks.
On 4xx (other than 408/425/429) Botely does NOT retry โ the receiver has explicitly said no.
Signature mismatch
If verification fails: confirm you're hashing the RAW body bytes, NOT the parsed JSON object. Re-serialised JSON has different whitespace / key order.
If you've rotated your secret in /app/settings/webhooks, the previous secret stops working immediately. Pending deliveries in-flight will fail.
Send test payload
Each webhook card has a 'Send test' button. The test sends a synthetic `action=TEST` payload signed with your live secret, and shows the receiver's status code + response body inline. Test rate-limited to 5/min/user.
Timeouts
Botely waits up to 10 s for a response. Slower endpoints are treated as retryable network errors. If your receiver is intentionally async (queues for later), return a 200 immediately and process in the background.