One request. One operational record.

Once Switchyard accepts the webhook, the argument ends.

The original request, routing decisions, delivery attempts, operator actions, and recovery outcome remain connected in one inspectable record.

Diagnostic receipt Verified record
Request
evt_20260720_143208_01 POST /hooks/stripe Exact request body preserved · 482 bytes · sha256 captured
Decision
Endpoint billing-production Routing version 7 Destination Billing API
Recovery
Initial delivery HTTP 500 Replay HTTP 200 Receipt status Verified

Without the record, the incident breaks apart.

THE INVESTIGATION GAP

One webhook. Six places to search for the truth.

The provider, application, queue, destination, and operator may each hold one fragment. The incident only becomes clear after someone manually connects them.

Illustrative fragments. Not a real Switchyard incident.

Provider dashboard

Known
Provider id: evt_3RqL…
Missing
Destination attempt trail unknown

Ingress logs

Known
· POST received
Missing
Request identity truncated

Application logs

Known
Deserialize error · id: …7c1a
Missing
Provider event id not logged

Queue or worker state

Known
Worker stopped at attempt 4
Missing
Final response body expired

Destination response

Known
HTTP 500 at
Missing
Original payload unavailable

UnresolvedWhat actually happened to this webhook?

Human replay note

Known
“Fix deployed” ·
Missing
Replay result not recorded

Switchyard preserves those fragments as one connected incident.

ONE PRESERVED INCIDENT

The request, the retries, the replay, and the proof stay connected.

Switchyard preserves what arrived, what was decided, every delivery attempt, the recovery action, and the final evidence as one operational record.

Inspect this incident Sample data. Not from a customer or production incident.

Evidence

One expandable record shows what the system actually proved.

Sample diagnostic receipt
Event ID
evt_20260720_143208_01
Endpoint
billing-production (end_9c2f7a1e)
Provider
stripe
Event type
payment_intent.payment_failed
Verification
Stripe signature valid
Redaction state
Sanitized (signature redacted, sensitive paths masked)
Routing rule
payments-v3 · 7
Selected destination
Billing API
Skipped destinations
Audit log, Salesforce sync
Error class
http_server_error
Recovery action
operator_replay_after_receiver_repair
Final result
Replay returned HTTP 200

Deliveries

Billing API exhausted · 4 attempts
Billing API succeeded · 1 attempt
Sample data. Not from a customer or production incident.

Download the receipt as JSON or read it as Markdown.

Run the incident yourself

Bring Switchyard a webhook. It will keep the record.

Run the guided failure, or create an endpoint and inspect what Switchyard preserves from the first request through the final delivery result.