Webhook Guides

Webhook Replay with Modifications

Webhook replay with modifications lets you resend a captured request after editing the method, path, query string, headers, or body. It is useful when a receiver bug is fixed, a route path changed, or a payload shape needs a controlled test before you replay more traffic.

FastHook keeps modified replay tied to the original request history. Operators can inspect the original request, queue the edited replay, then follow the new request, routed events, and destination attempts in the dashboard.

What modified replay changes

FieldExampleWhy edit it
MethodPOST to PUTValidate a receiver that expects a different HTTP verb.
Path/v1/orders to /v2/ordersTest a new route without waiting for the provider.
Query stringdry_run=trueSend a safe replay when the receiver supports dry-run mode.
Headerscontent-type: application/jsonFix receiver parsing or proxy behavior.
BodyCorrected JSON fixtureValidate a schema or transformation fix with real event context.

When to use it

  • A destination route was wrong and you want to test the corrected path.
  • A receiver rejected a request because of missing or malformed headers.
  • A schema bug was fixed and the original provider payload is the best test case.
  • A transformation should become permanent, but you want one manual replay first.
  • A destination supports a dry-run flag and you want to avoid side effects during debugging.

When exact replay is better

Use exact replay when the original request was already correct and the destination simply failed. Exact replay is better for recovery after outages, credential fixes, temporary 5xx responses, and rate-limit drains.

  • The receiver is healthy again and no payload changes are needed.
  • You are recovering a time window with bulk replay.
  • Provider signatures must still match the exact original body.
  • The destination contract has not changed.

API example

Modified replay
curl -X POST "https://api.fasthook.io/v1/requests/req_01jv8c3m7b2p4q9x6r5t1n0k8s/retry" \
  -H "Authorization: Bearer fhp_xxx" \
  -H "x-team-id: tm_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "modifications": {
      "method": "POST",
      "path": "/stripe/replay-test",
      "query": "dry_run=true",
      "headers": {
        "content-type": "application/json",
        "x-debug-replay": "true"
      },
      "body": "{\"type\":\"invoice.paid\",\"replay_test\":true}"
    }
  }'

Signature warning

Provider signatures are usually bound to the exact raw payload. If you change the body, path, query string, or signed headers, the original Stripe, GitHub, or provider signature should no longer verify. That is a feature, not a bug.

For modified replay tests, use explicit receiver debug controls or FastHook destination delivery signatures instead of trusting stale provider signatures.

Dashboard workflow

  1. Open Requests in the FastHook dashboard.
  2. Select the captured request you want to replay.
  3. Click Modify replay in the request detail panel.
  4. Edit method, path, query, headers JSON, or body.
  5. Replay the edited request and inspect the new request, events, and attempts.

How it fits with transformations

Modified replay is best for one-off investigation. If you need the same edit again, move that logic into a FastHook transformation so future traffic is shaped automatically and consistently.

  • Use modified replay to prove the desired output.
  • Convert repeatable edits into a transformation rule.
  • Use exact replay or event retry after the permanent fix is in place.
  • Keep receiver idempotency active for every replay path.

Related guides