Skip to main content
When a webhook integration fails in production, you need to identify which events were affected, understand what went wrong, and re-deliver the original payloads to your fixed endpoint — without asking the provider to resend. The Webhook Debugger stores every captured event as a durable record and exposes a replay API that lets you re-send any stored event to a new destination. Start a new actor run with a long retention window and alerting enabled so you can capture and triage events over the full incident window:

Identify failed events

Use the /logs query API to find events that need attention. Authenticate with your authKey using the Authorization header:
Find all events with a 4xx or 5xx status:
Find events that failed signature verification:
Check forwarding and sync health:
Find a specific event by the actor-generated request ID:
Confirm active webhook IDs and current configuration:
Watch live traffic while the incident is still active:

Review payload and error context

Retrieve the full detail for a specific log entry:
The response includes headers, body, response status, signature state, and timing:
If the body was offloaded to storage due to size, retrieve the full payload:
If forwarding failed after a webhook was captured, the original ingress event is still stored independently, so the original payload is always available for replay. Check /system/metrics to see forwarding error counts and last sync time.

Replay to your fixed endpoint

Once you patch the downstream service, replay the original captured event. The actor sends the original method and payload, adds X-Apify-Replay: true and an idempotency key, and strips masked or transport-managed headers before forwarding. Replay a single event:
A successful replay returns:

Bulk replay with offset pagination

To replay a large batch of failed events, page through /logs with statusCode[gte]=400 and replay each entry. Use offset pagination to move through the full result set:
Each page response includes nextOffset and nextPageUrl for easy iteration:
For each id in the results, issue a replay request to your fixed endpoint.
Keep /log-stream open during recovery to confirm each replayed request completes and to catch any follow-on errors immediately.

Set up alerts to catch failures proactively

Configure alertOn with the failure conditions you want to know about immediately. The actor posts a notification to Slack or Discord when any matching condition occurs:

Common incident patterns