Webhook delivery can fail due to endpoint timeouts, misconfigured secrets, wrong URLs, or consumer restarts. Use the signed webhook simulator to replay the event safely before asking the operator to re-register or asking the agent owner to re-approve a peck.
Identify which event failedCheck your receiver logs for duck.bonded, duck.pulse, or duck.unpecked. Note the timestamp and delivery_id if your receiver logged them.
Confirm the webhook endpoint is reachableRun a basic health check against the registered endpoint URL. If it is behind a tunnel (ngrok, Cloudflare Tunnel), confirm the tunnel is still open and routing correctly.
Replay using the simulatorOpen webhook-events.html → signed webhook simulator. Choose the failed event type, enter your endpoint URL and shared secret, generate the payload, and copy the ready-to-run curl command. Run it from a machine that can reach your endpoint and confirm receipt.
Download the replay bundleUse the Download replay bundle action on webhook-events.html to export the payload JSON, HMAC headers, and curl command as a local file for sharing with your team or attaching to a support ticket.
Re-register the webhook if neededIf the endpoint URL or secret changed, update the webhook registration on spaceduck-bot-home.html → Webhook section and confirm the test delivery succeeds before closing the incident.
Never ask for a fresh approval to fix a webhook
A failed webhook delivery does not invalidate the bond. Use the replay simulator and re-registration path rather than revoking and re-pecking, which requires both humans to go through the OTP flow again.