Skip to main content
Outcome

Workflow verification incomplete

This receipt shows the requests we made, what the app reported back, and which checks passed or failed. It covers what ran in this sandbox session against the rules we set.

4 / 9

Failing

4Passed4Failed1Not measured
What we did

Each check was set up before the run. This shows what we tried, what came back, and which rule it was checked against.

Scope

This receipt covers the checks in this run only. Passing all checks does not certify the whole app as production-ready.

Test scenarios

01

A request starts one recorded run (provider-independent, so every later check is measured)

baseline
Passed

What we probed

A request starts one recorded run (provider-independent, so every later check is measured)

How we probed it

Frozen intended probe steps. Recorded requests show what actually ran.

  1. POST /invocations

Expected vs actual

Expected
A request starts one recorded run (provider-independent, so every later check is measured)
Actual
expected exactly 1, found 1; stable under 2 repeats (1)

Requests and responses

01GET /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs200
We sent

GET /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs

This request had no body.

Server returned

HTTP 200

{
  "runs": []
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]"
}
{
  "content-type": "application/json",
  "content-length": "11"
}
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'x-fetchsandbox-relay: [redacted]' \
  --header 'authorization: [redacted]'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

02POST /invocations200
We sent

POST /invocations

{
  "action": "start",
  "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
  "input": {
    "eventId": "evt_baseline",
    "email": "[email protected]",
    "occurredAt": "2026-10-22T19:14:44.954Z",
    "source": "preference_center",
    "changes": [
      {
        "purpose": "marketing_email",
        "state": "withdrawn"
      },
      {
        "purpose": "sale_or_share",
        "state": "withdrawn"
      }
    ],
    "marketingSubscriptionId": "4242",
    "privacyChannel": "C0PRIVACY01"
  },
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
    "fs_case": "baseline"
  }
}
Server returned

HTTP 200

{
  "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
  "workflow": "consent-propagation",
  "metadata": {
    "organization": "Acme",
    "company": "Acme Corporation",
    "environment": "unconfigured",
    "owner": "unassigned",
    "department": "unassigned",
    "ownerTeam": "unassigned",
    "oncall": "unassigned",
    "version": "unversioned",
    "sourceCommit": "unrecorded"
  },
  "org": "Marketing",
  "team": "marketing-ops",
  "phase": "DONE",
  "closed": true,
  "outcome": "partial",
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
    "fs_case": "baseline"
  },
  "duplicateStarts": 0,
  "agents": [
    {
      "name": "crm",
      "status": "ok",
      "summary": "contact 346377993976",
      "durationMs": 565
    },
    {
      "name": "subscriptions",
      "status": "failed",
      "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
      "errorCode": "hubspot:EGeneral:Unknown method",
      "durationMs": 403
    },
    {
      "name": "billing",
      "status": "ok",
      "summary": "1 Stripe customer(s)",
      "durationMs": 226
    }
  ],
  "actions": [
    {
      "id": "hubspot.consent:346377993976",
      "kind": "hubspot.consent",
      "provider": "hubspot",
      "agent": "crm",
      "gate": "auto",
      "status": "failed",
      "summary": {
        "eventId": "evt_baseline",
        "contact": "346377993976",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ]
      },
      "attempts": 1,
      "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
      "errorCode": "hubspot:VALIDATION_ERROR",
      "reconciled": null
    },
    {
      "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
      "kind": "stripe.consent",
      "provider": "stripe",
      "agent": "billing",
      "gate": "auto",
      "status": "applied",
      "summary": {
        "eventId": "evt_baseline",
        "customer": "cus_C5F05JNN9MYYJOGN",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ]
      },
      "attempts": 1,
      "ref": "cus_C5F05JNN9MYYJOGN",
      "detail": {
        "wrote": [
          "acme_consent_marketing_email",
          "acme_consent_sale_or_share"
        ],
        "stale": []
      },
      "appliedAt": "2026-10-22T19:15:52.292Z",
      "reconciled": null
    },
    {
      "id": "slack.post_consent",
      "kind": "slack.post_consent",
      "provider": "slack",
      "agent": "crm",
      "gate": "auto",
      "status": "applied",
      "summary": {
        "eventId": "evt_baseline",
        "missing": [
          "HubSpot email subscriptions"
        ]
      },
      "attempts": 1,
      "ref": "17JDWR95A3.WP00X6",
      "appliedAt": "2026-10-22T19:15:52.477Z",
      "reconciled": null
    },
    {
      "id": "consent.verify",
      "kind": "consent.verify",
      "provider": "hubspot",
      "agent": "crm",
      "gate": "auto",
      "status": "failed",
      "summary": {
        "eventId": "evt_baseline",
        "afterMinutes": 15,
        "systems": 2
      },
      "attempts": 1,
      "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
      "errorCode": "hubspot:VALIDATION_ERROR",
      "reconciled": null
    }
  ],
  "counts": {
    "applied": 2,
    "failed": 2,
    "pendingApproval": 0,
    "skipped": 0,
    "rejected": 0,
    "scheduled": 0,
    "awaitingSignal": 0,
    "compensated": 0
  },
  "wakeAt": null,
  "audit": {
    "seq": 7,
    "head": "d3fcd13a31784ab9a96a40fc4af626859a310edca57ba5f3c4058e11393059c2"
  },
  "output": {
    "mode": "partial",
    "contact": "346377993976",
    "customers": 1,
    "purposes": [
      "marketing_email=withdrawn",
      "sale_or_share=withdrawn"
    ]
  },
  "events": [
    {
      "at": "2026-10-22T19:15:51.021Z",
      "msg": "started by U_FETCHSANDBOX"
    },
    {
      "at": "2026-10-22T19:15:51.588Z",
      "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
    },
    {
      "at": "2026-10-22T19:15:51.591Z",
      "msg": "planned 4 action(s): 0 need approval"
    },
    {
      "at": "2026-10-22T19:15:51.940Z",
      "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
    },
    {
      "at": "2026-10-22T19:15:52.292Z",
      "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: applied"
    },
    {
      "at": "2026-10-22T19:15:52.477Z",
      "msg": "slack.post_consent: applied"
    },
    {
      "at": "2026-10-22T19:15:52.813Z",
      "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
    },
    {
      "at": "2026-10-22T19:15:52.815Z",
      "msg": "done (partial)"
    }
  ],
  "createdAt": "2026-10-22T19:15:51.021Z",
  "updatedAt": "2026-10-22T19:15:52.815Z",
  "duplicate": false
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]",
  "content-length": "512",
  "content-type": "application/json"
}
{
  "content-type": "application/json"
}
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'x-fetchsandbox-relay: [redacted]' \
  --header 'authorization: [redacted]' \
  --header 'content-type: application/json' \
  --data-raw '{
  "action": "start",
  "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
  "input": {
    "eventId": "evt_baseline",
    "email": "[email protected]",
    "occurredAt": "2026-10-22T19:14:44.954Z",
    "source": "preference_center",
    "changes": [
      {
        "purpose": "marketing_email",
        "state": "withdrawn"
      },
      {
        "purpose": "sale_or_share",
        "state": "withdrawn"
      }
    ],
    "marketingSubscriptionId": "4242",
    "privacyChannel": "C0PRIVACY01"
  },
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
    "fs_case": "baseline"
  }
}'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

03GET /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs200
We sent

GET /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs

This request had no body.

Server returned

HTTP 200

{
  "runs": [
    {
      "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 346377993976",
          "durationMs": 565
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 403
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 226
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:346377993976",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "contact": "346377993976",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "customer": "cus_C5F05JNN9MYYJOGN",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_C5F05JNN9MYYJOGN",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:15:52.292Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17JDWR95A3.WP00X6",
          "appliedAt": "2026-10-22T19:15:52.477Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 7,
        "head": "d3fcd13a31784ab9a96a40fc4af626859a310edca57ba5f3c4058e11393059c2"
      },
      "output": {
        "mode": "partial",
        "contact": "346377993976",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:51.021Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:51.588Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:51.591Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:15:51.940Z",
          "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:52.292Z",
          "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: applied"
        },
        {
          "at": "2026-10-22T19:15:52.477Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:15:52.813Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:52.815Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:15:51.021Z",
      "updatedAt": "2026-10-22T19:15:52.815Z"
    }
  ]
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]"
}
{
  "content-type": "application/json"
}
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'x-fetchsandbox-relay: [redacted]' \
  --header 'authorization: [redacted]'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

04POST /invocations200
We sent

POST /invocations

{
  "action": "start",
  "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
  "input": {
    "eventId": "evt_baseline",
    "email": "[email protected]",
    "occurredAt": "2026-10-22T19:14:44.954Z",
    "source": "preference_center",
    "changes": [
      {
        "purpose": "marketing_email",
        "state": "withdrawn"
      },
      {
        "purpose": "sale_or_share",
        "state": "withdrawn"
      }
    ],
    "marketingSubscriptionId": "4242",
    "privacyChannel": "C0PRIVACY01"
  },
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
    "fs_case": "baseline"
  }
}
Server returned

HTTP 200

{
  "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
  "workflow": "consent-propagation",
  "metadata": {
    "organization": "Acme",
    "company": "Acme Corporation",
    "environment": "unconfigured",
    "owner": "unassigned",
    "department": "unassigned",
    "ownerTeam": "unassigned",
    "oncall": "unassigned",
    "version": "unversioned",
    "sourceCommit": "unrecorded"
  },
  "org": "Marketing",
  "team": "marketing-ops",
  "phase": "DONE",
  "closed": true,
  "outcome": "partial",
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
    "fs_case": "baseline"
  },
  "duplicateStarts": 1,
  "agents": [
    {
      "name": "crm",
      "status": "ok",
      "summary": "contact 346377993976",
      "durationMs": 565
    },
    {
      "name": "subscriptions",
      "status": "failed",
      "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
      "errorCode": "hubspot:EGeneral:Unknown method",
      "durationMs": 403
    },
    {
      "name": "billing",
      "status": "ok",
      "summary": "1 Stripe customer(s)",
      "durationMs": 226
    }
  ],
  "actions": [
    {
      "id": "hubspot.consent:346377993976",
      "kind": "hubspot.consent",
      "provider": "hubspot",
      "agent": "crm",
      "gate": "auto",
      "status": "failed",
      "summary": {
        "eventId": "evt_baseline",
        "contact": "346377993976",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ]
      },
      "attempts": 1,
      "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
      "errorCode": "hubspot:VALIDATION_ERROR",
      "reconciled": null
    },
    {
      "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
      "kind": "stripe.consent",
      "provider": "stripe",
      "agent": "billing",
      "gate": "auto",
      "status": "applied",
      "summary": {
        "eventId": "evt_baseline",
        "customer": "cus_C5F05JNN9MYYJOGN",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ]
      },
      "attempts": 1,
      "ref": "cus_C5F05JNN9MYYJOGN",
      "detail": {
        "wrote": [
          "acme_consent_marketing_email",
          "acme_consent_sale_or_share"
        ],
        "stale": []
      },
      "appliedAt": "2026-10-22T19:15:52.292Z",
      "reconciled": null
    },
    {
      "id": "slack.post_consent",
      "kind": "slack.post_consent",
      "provider": "slack",
      "agent": "crm",
      "gate": "auto",
      "status": "applied",
      "summary": {
        "eventId": "evt_baseline",
        "missing": [
          "HubSpot email subscriptions"
        ]
      },
      "attempts": 1,
      "ref": "17JDWR95A3.WP00X6",
      "appliedAt": "2026-10-22T19:15:52.477Z",
      "reconciled": null
    },
    {
      "id": "consent.verify",
      "kind": "consent.verify",
      "provider": "hubspot",
      "agent": "crm",
      "gate": "auto",
      "status": "failed",
      "summary": {
        "eventId": "evt_baseline",
        "afterMinutes": 15,
        "systems": 2
      },
      "attempts": 1,
      "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
      "errorCode": "hubspot:VALIDATION_ERROR",
      "reconciled": null
    }
  ],
  "counts": {
    "applied": 2,
    "failed": 2,
    "pendingApproval": 0,
    "skipped": 0,
    "rejected": 0,
    "scheduled": 0,
    "awaitingSignal": 0,
    "compensated": 0
  },
  "wakeAt": null,
  "audit": {
    "seq": 8,
    "head": "56fe5d701699207105a8157fccfb639e68c594a89f358047f029651d671164bc"
  },
  "output": {
    "mode": "partial",
    "contact": "346377993976",
    "customers": 1,
    "purposes": [
      "marketing_email=withdrawn",
      "sale_or_share=withdrawn"
    ]
  },
  "events": [
    {
      "at": "2026-10-22T19:15:51.021Z",
      "msg": "started by U_FETCHSANDBOX"
    },
    {
      "at": "2026-10-22T19:15:51.588Z",
      "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
    },
    {
      "at": "2026-10-22T19:15:51.591Z",
      "msg": "planned 4 action(s): 0 need approval"
    },
    {
      "at": "2026-10-22T19:15:51.940Z",
      "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
    },
    {
      "at": "2026-10-22T19:15:52.292Z",
      "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: applied"
    },
    {
      "at": "2026-10-22T19:15:52.477Z",
      "msg": "slack.post_consent: applied"
    },
    {
      "at": "2026-10-22T19:15:52.813Z",
      "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
    },
    {
      "at": "2026-10-22T19:15:52.815Z",
      "msg": "done (partial)"
    },
    {
      "at": "2026-10-22T19:15:53.428Z",
      "msg": "duplicate start ignored"
    }
  ],
  "createdAt": "2026-10-22T19:15:51.021Z",
  "updatedAt": "2026-10-22T19:15:53.429Z",
  "duplicate": true
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]",
  "content-length": "512",
  "content-type": "application/json"
}
{
  "content-type": "application/json"
}
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'x-fetchsandbox-relay: [redacted]' \
  --header 'authorization: [redacted]' \
  --header 'content-type: application/json' \
  --data-raw '{
  "action": "start",
  "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
  "input": {
    "eventId": "evt_baseline",
    "email": "[email protected]",
    "occurredAt": "2026-10-22T19:14:44.954Z",
    "source": "preference_center",
    "changes": [
      {
        "purpose": "marketing_email",
        "state": "withdrawn"
      },
      {
        "purpose": "sale_or_share",
        "state": "withdrawn"
      }
    ],
    "marketingSubscriptionId": "4242",
    "privacyChannel": "C0PRIVACY01"
  },
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
    "fs_case": "baseline"
  }
}'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

05GET /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs200
We sent

GET /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs

This request had no body.

Server returned

HTTP 200

{
  "runs": [
    {
      "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 346377993976",
          "durationMs": 565
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 403
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 226
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:346377993976",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "contact": "346377993976",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "customer": "cus_C5F05JNN9MYYJOGN",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_C5F05JNN9MYYJOGN",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:15:52.292Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17JDWR95A3.WP00X6",
          "appliedAt": "2026-10-22T19:15:52.477Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 8,
        "head": "56fe5d701699207105a8157fccfb639e68c594a89f358047f029651d671164bc"
      },
      "output": {
        "mode": "partial",
        "contact": "346377993976",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:51.021Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:51.588Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:51.591Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:15:51.940Z",
          "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:52.292Z",
          "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: applied"
        },
        {
          "at": "2026-10-22T19:15:52.477Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:15:52.813Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:52.815Z",
          "msg": "done (partial)"
        },
        {
          "at": "2026-10-22T19:15:53.428Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:15:51.021Z",
      "updatedAt": "2026-10-22T19:15:53.429Z"
    }
  ]
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]"
}
{
  "content-type": "application/json"
}
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'x-fetchsandbox-relay: [redacted]' \
  --header 'authorization: [redacted]'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

Evidence
Run
vr_d6428dde89434b3096ac24e1ffe115a0
App version (declared)
acme-ops-consent-propagation…
Source receipt
Source receipt ↗
Technical referencebaseline

App version (declared): acme-ops-consent-propagation-1.0.0-befeb35

A request starts one recorded run (provider-independent, so every later check is measured)

expected exactly 1, found 1; stable under 2 repeats (1)

  • Verification covers the declared HTTP actions and state reads in this run.
  • The app version shown was supplied by the app itself, not independently checked.
  • Passing all checks in this run does not certify the whole app as production-ready.
  • The verifier session does not survive a restart. This says nothing about the durability of the app under test.
  • App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (10)

These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.

stripe · GET /v1/customers · HTTP 200
We sent

GET /v1/customers

No body shown for this read.

Server returned

HTTP 200

{
  "data": [
    {
      "email": "[email protected]",
      "name": "Subject 0",
      "id": "cus_C5F05JNN9MYYJOGN",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 83,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  ],
  "has_more": false,
  "object": "list",
  "url": "/v1/customers"
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/a164f289d9/v1/customers

{
  "host": "fetchsandbox.com",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

hubspot · GET /communication-preferences/v3/status/email/[email protected] · HTTP 404
We sent

GET /communication-preferences/v3/status/email/[email protected]

No body shown for this read.

Server returned

HTTP 404

{
  "errors": [
    {
      "status": "404",
      "code": "EGeneral:Unknown method",
      "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
    }
  ]
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]

{
  "host": "fetchsandbox.com",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent

POST /crm/v3/objects/contacts/search

{
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "email",
          "operator": "EQ",
          "value": "[email protected]"
        }
      ]
    }
  ],
  "properties": [
    "email",
    "firstname",
    "lastname",
    "company",
    "lifecyclestage",
    "hs_lead_status",
    "hubspot_owner_id",
    "hs_email_domain",
    "country",
    "numberofemployees",
    "notes_last_contacted",
    "createdate",
    "acme_consent_marketing_email",
    "acme_consent_sale_or_share",
    "acme_consent_profiling"
  ],
  "limit": 10
}
Server returned

HTTP 200

{
  "total": 1,
  "results": [
    {
      "properties": {
        "email": "[email protected]"
      },
      "id": "346377993976",
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "updatedAt": "2019-12-07T16:50:06.678Z"
    }
  ]
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search

{
  "host": "fetchsandbox.com",
  "content-length": "402",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "content-type": "application/json; charset=utf-8"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'content-type: application/json; charset=utf-8' \
  --data-raw '{
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "email",
          "operator": "EQ",
          "value": "[email protected]"
        }
      ]
    }
  ],
  "properties": [
    "email",
    "firstname",
    "lastname",
    "company",
    "lifecyclestage",
    "hs_lead_status",
    "hubspot_owner_id",
    "hs_email_domain",
    "country",
    "numberofemployees",
    "notes_last_contacted",
    "createdate",
    "acme_consent_marketing_email",
    "acme_consent_sale_or_share",
    "acme_consent_profiling"
  ],
  "limit": 10
}'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

hubspot · GET /crm/v3/objects/contacts/346377993976 · HTTP 200
We sent

GET /crm/v3/objects/contacts/346377993976

No body shown for this read.

Server returned

HTTP 200

{
  "archived": false,
  "createdAt": "2019-10-30T03:30:17.883Z",
  "id": "346377993976",
  "properties": {
    "email": "[email protected]"
  },
  "updatedAt": "2019-12-07T16:50:06.678Z",
  "url": "https://example.com/a529bf95"
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976

{
  "host": "fetchsandbox.com",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

hubspot · PATCH /crm/v3/objects/contacts/346377993976 · HTTP 400
We sent

PATCH /crm/v3/objects/contacts/346377993976

{
  "properties": {
    "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_last_event": "evt_baseline"
  }
}
Server returned

HTTP 400

{
  "status": "error",
  "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_last_event\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_last_event\"}]",
  "category": "VALIDATION_ERROR",
  "errors": [
    {
      "isValid": false,
      "message": "Property \"acme_consent_marketing_email\" does not exist",
      "error": "PROPERTY_DOESNT_EXIST",
      "name": "acme_consent_marketing_email"
    },
    {
      "isValid": false,
      "message": "Property \"acme_consent_sale_or_share\" does not exist",
      "error": "PROPERTY_DOESNT_EXIST",
      "name": "acme_consent_sale_or_share"
    },
    {
      "isValid": false,
      "message": "Property \"acme_consent_last_event\" does not exist",
      "error": "PROPERTY_DOESNT_EXIST",
      "name": "acme_consent_last_event"
    }
  ]
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976

{
  "host": "fetchsandbox.com",
  "content-length": "191",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "content-type": "application/json; charset=utf-8"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'content-type: application/json; charset=utf-8' \
  --data-raw '{
  "properties": {
    "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_last_event": "evt_baseline"
  }
}'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

stripe · GET /v1/customers/cus_C5F05JNN9MYYJOGN · HTTP 200
We sent

GET /v1/customers/cus_C5F05JNN9MYYJOGN

No body shown for this read.

Server returned

HTTP 200

{
  "address": null,
  "balance": 0,
  "business_name": "Sample Business",
  "cash_balance": null,
  "created": 83,
  "currency": "USD",
  "customer_account": null,
  "default_source": null,
  "delinquent": false,
  "description": null,
  "discount": null,
  "email": "[email protected]",
  "id": "cus_C5F05JNN9MYYJOGN",
  "individual_name": "Sample Individual",
  "invoice_prefix": null,
  "livemode": false,
  "name": "Subject 0",
  "object": "customer",
  "phone": "+14155550100",
  "preferred_locales": null,
  "shipping": null,
  "tax_exempt": "exempt",
  "test_clock": null
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_C5F05JNN9MYYJOGN

{
  "host": "fetchsandbox.com",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_C5F05JNN9MYYJOGN' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

stripe · POST /v1/customers/cus_C5F05JNN9MYYJOGN · HTTP 200
We sent

POST /v1/customers/cus_C5F05JNN9MYYJOGN

{
  "metadata": {
    "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_last_event": "evt_baseline"
  }
}
Server returned

HTTP 200

{
  "email": "[email protected]",
  "name": "Subject 0",
  "id": "cus_C5F05JNN9MYYJOGN",
  "address": null,
  "balance": 0,
  "business_name": "Sample Business",
  "cash_balance": null,
  "created": 83,
  "currency": "USD",
  "customer_account": null,
  "default_source": null,
  "delinquent": false,
  "description": null,
  "discount": null,
  "individual_name": "Sample Individual",
  "invoice_prefix": null,
  "livemode": false,
  "object": "customer",
  "phone": "+14155550100",
  "preferred_locales": null,
  "shipping": null,
  "tax_exempt": "exempt",
  "test_clock": null,
  "metadata": {
    "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_last_event": "evt_baseline"
  }
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_C5F05JNN9MYYJOGN

{
  "host": "fetchsandbox.com",
  "content-length": "216",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "content-type": "application/x-www-form-urlencoded"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_C5F05JNN9MYYJOGN' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data-raw '{
  "metadata": {
    "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_last_event": "evt_baseline"
  }
}'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

slack · POST /api/chat.postMessage · HTTP 200
We sent

POST /api/chat.postMessage

{
  "channel": "C0PRIVACY01",
  "text": ":warning: Consent evt_baseline (subject 243b559d00) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
  "unfurl_links": false,
  "unfurl_media": false
}
Server returned

HTTP 200

{
  "channel": "C0PRIVACY01",
  "message": {
    "bot_id": "bot_6556751a2e9846f5a6818c1625",
    "client_msg_id": "cli_4c1cdfedc3894fe781c631a17c",
    "name": "item-daa048",
    "old_name": "Sample Old",
    "parent_user_id": "par_0c2d549f3ccf4e00bb6ab0121f",
    "permalink": "my-resource",
    "reply_count": 0,
    "reply_users_count": 0,
    "text": "Sample text content",
    "ts": "sample-value",
    "type": "default",
    "unread_count": 0,
    "username": "acme-corp"
  },
  "ok": true,
  "ts": "17JDWR95A3.WP00X6"
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage

{
  "host": "fetchsandbox.com",
  "content-length": "228",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "content-type": "application/json; charset=utf-8"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'content-type: application/json; charset=utf-8' \
  --data-raw '{
  "channel": "C0PRIVACY01",
  "text": ":warning: Consent evt_baseline (subject 243b559d00) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
  "unfurl_links": false,
  "unfurl_media": false
}'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

hubspot · GET /crm/v3/objects/contacts/346377993976 · HTTP 200
We sent

GET /crm/v3/objects/contacts/346377993976

No body shown for this read.

Server returned

HTTP 200

{
  "archived": false,
  "createdAt": "2019-10-30T03:30:17.883Z",
  "id": "346377993976",
  "properties": {
    "email": "[email protected]"
  },
  "updatedAt": "2019-12-07T16:50:06.678Z",
  "url": "https://example.com/5a5d9057"
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976

{
  "host": "fetchsandbox.com",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

hubspot · PATCH /crm/v3/objects/contacts/346377993976 · HTTP 400
We sent

PATCH /crm/v3/objects/contacts/346377993976

{
  "properties": {
    "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
  }
}
Server returned

HTTP 400

{
  "status": "error",
  "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}]",
  "category": "VALIDATION_ERROR",
  "errors": [
    {
      "isValid": false,
      "message": "Property \"acme_consent_marketing_email\" does not exist",
      "error": "PROPERTY_DOESNT_EXIST",
      "name": "acme_consent_marketing_email"
    },
    {
      "isValid": false,
      "message": "Property \"acme_consent_sale_or_share\" does not exist",
      "error": "PROPERTY_DOESNT_EXIST",
      "name": "acme_consent_sale_or_share"
    }
  ]
}

HTTP status is a response, not the scenario verdict. State shown here is reported by the app.

Technical details
Headers and timing

https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976

{
  "host": "fetchsandbox.com",
  "content-length": "150",
  "user-agent": "node",
  "accept": "application/json",
  "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
  "content-type": "application/json; charset=utf-8"
}

Response headers were not saved in this run.

Rebuilt curl
curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
  --header 'content-type: application/json; charset=utf-8' \
  --data-raw '{
  "properties": {
    "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
    "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
  }
}'

This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

Run details

Run vr_d6428dde89434b3096ac24e1ffe115a0

9 required checks for the declared application workflow. Results apply to the recorded observation windows.

4 passed · 4 failed · 1 not checked

Coverage beyond the declared checks

Passing these checks does not establish every production behavior.

  • Normal successful behavior · Linked check failed · baseline, baseline_effects
  • The right user gets the right access · Proposed as not applicable
  • Valid data and boundary values · Linked checks passed · invalid_input_rejected
  • Correct amount, currency and quantity · Linked checks passed · every_customer_updated
  • Duplicate requests and events · Linked check failed · replay_changes_nothing
  • Requests arriving together · Proposed as not applicable
  • Out-of-order and stale events · Linked check failed · stale_event_ignored
  • Delayed or missing events · Not checked · verified_after_15_minutes
  • Provider authentication and permissions · Linked checks passed · hubspot_rate_limited
  • Rate limits, server failures and timeouts · Linked checks passed · hubspot_rate_limited
  • Completed action with a lost response · Proposed as not applicable
  • Partial completion and recovery · Linked checks passed · hubspot_rate_limited
  • Restart without losing or duplicating work · Proposed as not applicable
  • Finding and repairing inconsistent state · Not checked · verified_after_15_minutes
  • Cancellation, refunds and access · Linked check failed · subscription_turned_off
  • Data ownership and privacy · Proposed as not applicable
  • Test isolation and cleanup · Linked checks passed · baseline

Applicability comes from the proposed plan. Test results come from the recorded execution.

App version: acme-ops-consent-propagation-1.0.0-befeb35 (declared)

Measured run: 2026-10-22T19:15:50.608284+00:00 – 2026-10-22T19:16:20.293309+00:00

Recorded execution

Recorded application requests and state reads for the declared HTTP contract.

The timeline below merges all requests from this run, sorted by recorded timestamp.

Recorded requests and deliveries: 99/131 successful · checkpoints: 8/9 recorded

Why checks are unmeasured

  • verified_after_15_minutes: required observation 'ref' is missing
Sanitized request and event timeline (131 events)
  1. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:50.872820+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  2. · POST app request /invocations · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:52.929419+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "512",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 346377993976",
          "durationMs": 565
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 403
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 226
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:346377993976",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "contact": "346377993976",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "customer": "cus_C5F05JNN9MYYJOGN",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_C5F05JNN9MYYJOGN",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:15:52.292Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17JDWR95A3.WP00X6",
          "appliedAt": "2026-10-22T19:15:52.477Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 7,
        "head": "d3fcd13a31784ab9a96a40fc4af626859a310edca57ba5f3c4058e11393059c2"
      },
      "output": {
        "mode": "partial",
        "contact": "346377993976",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:51.021Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:51.588Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:51.591Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:15:51.940Z",
          "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:52.292Z",
          "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: applied"
        },
        {
          "at": "2026-10-22T19:15:52.477Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:15:52.813Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:52.815Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:15:51.021Z",
      "updatedAt": "2026-10-22T19:15:52.815Z",
      "duplicate": false
    }
  3. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 80ea9e325a36 · processing 17.11ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 17.11ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_C5F05JNN9MYYJOGN",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 83,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  4. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request 183d7435c830 · processing 0.14ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.14ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  5. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 5b49e023b527 · processing 2.01ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 2.01ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "402",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 200

    {
      "total": 1,
      "results": [
        {
          "properties": {
            "email": "[email protected]"
          },
          "id": "346377993976",
          "archived": false,
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z"
        }
      ]
    }
  6. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/346377993976 · HTTP 200 · request 17b4451ac8d6 · processing 1.79ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.79ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "346377993976",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/a529bf95"
    }
  7. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/346377993976 · HTTP 400 · request fb6cabf784e8 · processing 1.6ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_baseline"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.6ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "191",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_baseline"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_last_event\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_last_event\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_last_event\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_last_event"
        }
      ]
    }
  8. · GET stripe request · provider traffic · /v1/customers/cus_C5F05JNN9MYYJOGN · HTTP 200 · request ea596f5896d7 · processing 17.22ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_C5F05JNN9MYYJOGN' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 17.22ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 83,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_C5F05JNN9MYYJOGN",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  9. · POST stripe request · provider traffic · /v1/customers/cus_C5F05JNN9MYYJOGN · HTTP 200 · request dc404631f7f7 · processing 15.79ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_C5F05JNN9MYYJOGN' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data-raw '{
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_baseline"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 15.79ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "216",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/x-www-form-urlencoded"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_baseline"
      }
    }

    Recorded response · HTTP 200

    {
      "email": "[email protected]",
      "name": "Subject 0",
      "id": "cus_C5F05JNN9MYYJOGN",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 83,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_baseline"
      }
    }
  10. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request b6d378da2562 · processing 12.82ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_baseline (subject 243b559d00) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 12.82ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "228",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_baseline (subject 243b559d00) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_6556751a2e9846f5a6818c1625",
        "client_msg_id": "cli_4c1cdfedc3894fe781c631a17c",
        "name": "item-daa048",
        "old_name": "Sample Old",
        "parent_user_id": "par_0c2d549f3ccf4e00bb6ab0121f",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "17JDWR95A3.WP00X6"
    }
  11. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/346377993976 · HTTP 200 · request 1c4907a0f8b8 · processing 1.89ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.89ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "346377993976",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/5a5d9057"
    }
  12. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/346377993976 · HTTP 400 · request ecad9b141c56 · processing 1.63ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.63ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "150",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        }
      ]
    }
  13. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:53.277274+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "baseline"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 346377993976",
              "durationMs": 565
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 403
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 226
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:346377993976",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_baseline",
                "contact": "346377993976",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_baseline",
                "customer": "cus_C5F05JNN9MYYJOGN",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_C5F05JNN9MYYJOGN",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:15:52.292Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_baseline",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17JDWR95A3.WP00X6",
              "appliedAt": "2026-10-22T19:15:52.477Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_baseline",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 7,
            "head": "d3fcd13a31784ab9a96a40fc4af626859a310edca57ba5f3c4058e11393059c2"
          },
          "output": {
            "mode": "partial",
            "contact": "346377993976",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:15:51.021Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:15:51.588Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:15:51.591Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:15:51.940Z",
              "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:52.292Z",
              "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: applied"
            },
            {
              "at": "2026-10-22T19:15:52.477Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:15:52.813Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:52.815Z",
              "msg": "done (partial)"
            }
          ],
          "createdAt": "2026-10-22T19:15:51.021Z",
          "updatedAt": "2026-10-22T19:15:52.815Z"
        }
      ]
    }
  14. · POST app request /invocations · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:53.574249+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "512",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 346377993976",
          "durationMs": 565
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 403
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 226
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:346377993976",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "contact": "346377993976",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "customer": "cus_C5F05JNN9MYYJOGN",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_C5F05JNN9MYYJOGN",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:15:52.292Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17JDWR95A3.WP00X6",
          "appliedAt": "2026-10-22T19:15:52.477Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 8,
        "head": "56fe5d701699207105a8157fccfb639e68c594a89f358047f029651d671164bc"
      },
      "output": {
        "mode": "partial",
        "contact": "346377993976",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:51.021Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:51.588Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:51.591Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:15:51.940Z",
          "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:52.292Z",
          "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: applied"
        },
        {
          "at": "2026-10-22T19:15:52.477Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:15:52.813Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:52.815Z",
          "msg": "done (partial)"
        },
        {
          "at": "2026-10-22T19:15:53.428Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:15:51.021Z",
      "updatedAt": "2026-10-22T19:15:53.429Z",
      "duplicate": true
    }
  15. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:53.900238+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "baseline-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "baseline"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 346377993976",
              "durationMs": 565
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 403
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 226
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:346377993976",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_baseline",
                "contact": "346377993976",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_baseline",
                "customer": "cus_C5F05JNN9MYYJOGN",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_C5F05JNN9MYYJOGN",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:15:52.292Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_baseline",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17JDWR95A3.WP00X6",
              "appliedAt": "2026-10-22T19:15:52.477Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_baseline",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 8,
            "head": "56fe5d701699207105a8157fccfb639e68c594a89f358047f029651d671164bc"
          },
          "output": {
            "mode": "partial",
            "contact": "346377993976",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:15:51.021Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:15:51.588Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:15:51.591Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:15:51.940Z",
              "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:52.292Z",
              "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: applied"
            },
            {
              "at": "2026-10-22T19:15:52.477Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:15:52.813Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:52.815Z",
              "msg": "done (partial)"
            },
            {
              "at": "2026-10-22T19:15:53.428Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:15:51.021Z",
          "updatedAt": "2026-10-22T19:15:53.429Z"
        }
      ]
    }
  16. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline_effects/runs · baseline effects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline_effects/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:54.138037+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  17. · POST app request /invocations · baseline effects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "baseline-effects-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline_effects"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:55.594824+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "528",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "baseline-effects-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline_effects"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "baseline-effects-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline_effects"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 346377993976",
          "durationMs": 218
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 151
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 179
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:346377993976",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "contact": "346377993976",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "skipped",
          "summary": {
            "eventId": "evt_baseline",
            "customer": "cus_C5F05JNN9MYYJOGN",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 0,
          "detail": {
            "reason": "already applied"
          },
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17MPSE9ALZ.89RXJC",
          "appliedAt": "2026-10-22T19:15:55.125Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 1,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 1,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 7,
        "head": "4ebcc0b22a563748eeb50d7cd5e595ca299909fa56520a31d34266b9c56bdcd5"
      },
      "output": {
        "mode": "partial",
        "contact": "346377993976",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:54.248Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:54.467Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:54.470Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:15:54.787Z",
          "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:54.951Z",
          "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: skipped"
        },
        {
          "at": "2026-10-22T19:15:55.125Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:15:55.454Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:55.456Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:15:54.248Z",
      "updatedAt": "2026-10-22T19:15:55.456Z",
      "duplicate": false
    }
  18. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request 99603f8c3fd2 · processing 0.13ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.13ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  19. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 85f9996f3bc0 · processing 16.17ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.17ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_C5F05JNN9MYYJOGN",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 83,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null,
          "metadata": {
            "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
            "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
            "acme_consent_last_event": "evt_baseline"
          }
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  20. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 092282849858 · processing 1.64ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.64ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "402",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 200

    {
      "total": 1,
      "results": [
        {
          "properties": {
            "email": "[email protected]"
          },
          "id": "346377993976",
          "archived": false,
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z"
        }
      ]
    }
  21. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/346377993976 · HTTP 200 · request 3ae438081cfd · processing 1.74ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.74ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "346377993976",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/2d14aea2"
    }
  22. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/346377993976 · HTTP 400 · request c5f449c02984 · processing 1.67ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_baseline"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.67ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "191",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_baseline"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_last_event\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_last_event\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_last_event\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_last_event"
        }
      ]
    }
  23. · GET stripe request · provider traffic · /v1/customers/cus_C5F05JNN9MYYJOGN · HTTP 200 · request fb34d350eb48 · processing 16.32ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_C5F05JNN9MYYJOGN' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.32ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 83,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_C5F05JNN9MYYJOGN",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_baseline"
      }
    }
  24. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request f369a52f9df5 · processing 14.5ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_baseline (subject 243b559d00) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 14.5ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "228",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_baseline (subject 243b559d00) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_92e3b85586344d7987750c4cc5",
        "client_msg_id": "cli_a5c789d287ca4eceb0e2129520",
        "name": "item-f16eca",
        "old_name": "Sample Old",
        "parent_user_id": "par_16f37812af014832aa5d8ebb87",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "17MPSE9ALZ.89RXJC"
    }
  25. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/346377993976 · HTTP 200 · request a50aaba46874 · processing 1.83ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.83ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "346377993976",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/99d0f9c5"
    }
  26. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/346377993976 · HTTP 400 · request 48cf67c485ce · processing 1.28ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/346377993976' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.28ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "150",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        }
      ]
    }
  27. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline_effects/runs · baseline effects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline_effects/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:55.928254+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "baseline-effects-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "baseline_effects"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 346377993976",
              "durationMs": 218
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 151
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 179
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:346377993976",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_baseline",
                "contact": "346377993976",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "skipped",
              "summary": {
                "eventId": "evt_baseline",
                "customer": "cus_C5F05JNN9MYYJOGN",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 0,
              "detail": {
                "reason": "already applied"
              },
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_baseline",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17MPSE9ALZ.89RXJC",
              "appliedAt": "2026-10-22T19:15:55.125Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_baseline",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 1,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 1,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 7,
            "head": "4ebcc0b22a563748eeb50d7cd5e595ca299909fa56520a31d34266b9c56bdcd5"
          },
          "output": {
            "mode": "partial",
            "contact": "346377993976",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:15:54.248Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:15:54.467Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:15:54.470Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:15:54.787Z",
              "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:54.951Z",
              "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: skipped"
            },
            {
              "at": "2026-10-22T19:15:55.125Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:15:55.454Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:55.456Z",
              "msg": "done (partial)"
            }
          ],
          "createdAt": "2026-10-22T19:15:54.248Z",
          "updatedAt": "2026-10-22T19:15:55.456Z"
        }
      ]
    }
  28. · POST app request /invocations · baseline effects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "baseline-effects-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline_effects"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:56.155156+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "528",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "baseline-effects-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline_effects"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "baseline-effects-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "baseline_effects"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 346377993976",
          "durationMs": 218
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 151
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 179
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:346377993976",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "contact": "346377993976",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "skipped",
          "summary": {
            "eventId": "evt_baseline",
            "customer": "cus_C5F05JNN9MYYJOGN",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 0,
          "detail": {
            "reason": "already applied"
          },
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_baseline",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17MPSE9ALZ.89RXJC",
          "appliedAt": "2026-10-22T19:15:55.125Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_baseline",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 1,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 1,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 8,
        "head": "ab95cc4afe36d458fd09ab089185749addda56e8f3f6bfbedd1bd4e877d4d024"
      },
      "output": {
        "mode": "partial",
        "contact": "346377993976",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:54.248Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:54.467Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:54.470Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:15:54.787Z",
          "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:54.951Z",
          "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: skipped"
        },
        {
          "at": "2026-10-22T19:15:55.125Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:15:55.454Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:55.456Z",
          "msg": "done (partial)"
        },
        {
          "at": "2026-10-22T19:15:56.025Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:15:54.248Z",
      "updatedAt": "2026-10-22T19:15:56.025Z",
      "duplicate": true
    }
  29. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline_effects/runs · baseline effects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/baseline_effects/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:56.481043+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "baseline-effects-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "baseline_effects"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 346377993976",
              "durationMs": 218
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-baseline%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 151
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 179
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:346377993976",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_baseline",
                "contact": "346377993976",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_C5F05JNN9MYYJOGN",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "skipped",
              "summary": {
                "eventId": "evt_baseline",
                "customer": "cus_C5F05JNN9MYYJOGN",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 0,
              "detail": {
                "reason": "already applied"
              },
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_baseline",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17MPSE9ALZ.89RXJC",
              "appliedAt": "2026-10-22T19:15:55.125Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_baseline",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/346377993976 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 1,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 1,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 8,
            "head": "ab95cc4afe36d458fd09ab089185749addda56e8f3f6bfbedd1bd4e877d4d024"
          },
          "output": {
            "mode": "partial",
            "contact": "346377993976",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:15:54.248Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:15:54.467Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:15:54.470Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:15:54.787Z",
              "msg": "hubspot.consent:346377993976: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:54.951Z",
              "msg": "stripe.consent:cus_C5F05JNN9MYYJOGN: skipped"
            },
            {
              "at": "2026-10-22T19:15:55.125Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:15:55.454Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:55.456Z",
              "msg": "done (partial)"
            },
            {
              "at": "2026-10-22T19:15:56.025Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:15:54.248Z",
          "updatedAt": "2026-10-22T19:15:56.025Z"
        }
      ]
    }
  30. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/subscription_turned_off/runs · subscription turned off · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/subscription_turned_off/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:56.697921+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  31. · POST app request /invocations · subscription turned off · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "subscription-turned-off-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_subscription_turned_off",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "subscription_turned_off"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:58.358702+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "572",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "subscription-turned-off-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_subscription_turned_off",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "subscription_turned_off"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "subscription-turned-off-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "subscription_turned_off"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 747668044123",
          "durationMs": 232
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-subscription-turned-off%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 169
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 192
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:747668044123",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_subscription_turned_off",
            "contact": "747668044123",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/747668044123 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_5B9F2HLYYVKWFD9V",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_subscription_turned_off",
            "customer": "cus_5B9F2HLYYVKWFD9V",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_5B9F2HLYYVKWFD9V",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:15:57.753Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_subscription_turned_off",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17GKR5B1CD.HU188K",
          "appliedAt": "2026-10-22T19:15:57.922Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_subscription_turned_off",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/747668044123 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 7,
        "head": "1df948fc6508c48c559ced70eccb328c6151de51efa2eba693dd956f7810739c"
      },
      "output": {
        "mode": "partial",
        "contact": "747668044123",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:56.803Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:57.036Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:57.038Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:15:57.393Z",
          "msg": "hubspot.consent:747668044123: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:57.753Z",
          "msg": "stripe.consent:cus_5B9F2HLYYVKWFD9V: applied"
        },
        {
          "at": "2026-10-22T19:15:57.922Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:15:58.243Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:58.246Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:15:56.803Z",
      "updatedAt": "2026-10-22T19:15:58.246Z",
      "duplicate": false
    }
  32. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request 6f9db9355669 · processing 0.14ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.14ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  33. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request e1b6ca3e5d8d · processing 1.65ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.65ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "417",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 200

    {
      "total": 1,
      "results": [
        {
          "properties": {
            "email": "[email protected]"
          },
          "id": "747668044123",
          "archived": false,
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z"
        }
      ]
    }
  34. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 80777415574b · processing 15.01ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 15.01ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_5B9F2HLYYVKWFD9V",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 83,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  35. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/747668044123 · HTTP 200 · request 3ea5a56a3639 · processing 1.72ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/747668044123' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.72ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "747668044123",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/04cd4769"
    }
  36. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/747668044123 · HTTP 400 · request 30f9d2f21c22 · processing 1.53ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/747668044123' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_subscription_turned_off"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.53ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "206",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_subscription_turned_off"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_last_event\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_last_event\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_last_event\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_last_event"
        }
      ]
    }
  37. · GET stripe request · provider traffic · /v1/customers/cus_5B9F2HLYYVKWFD9V · HTTP 200 · request cd9d3890b1f8 · processing 15.93ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_5B9F2HLYYVKWFD9V' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 15.93ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 83,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_5B9F2HLYYVKWFD9V",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  38. · POST stripe request · provider traffic · /v1/customers/cus_5B9F2HLYYVKWFD9V · HTTP 200 · request 64cbf1f3a977 · processing 15.89ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_5B9F2HLYYVKWFD9V' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data-raw '{
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_subscription_turned_off"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 15.89ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "231",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/x-www-form-urlencoded"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_subscription_turned_off"
      }
    }

    Recorded response · HTTP 200

    {
      "email": "[email protected]",
      "name": "Subject 0",
      "id": "cus_5B9F2HLYYVKWFD9V",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 83,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_subscription_turned_off"
      }
    }
  39. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 56a518c182da · processing 14.22ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_subscription_turned_off (subject fbeae63c41) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 14.22ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "243",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_subscription_turned_off (subject fbeae63c41) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_50db605b53e5442aa49c52c692",
        "client_msg_id": "cli_6b96dd5dabd84d10b6256870b5",
        "name": "item-58122b",
        "old_name": "Sample Old",
        "parent_user_id": "par_9a2f2badb575410697fd2a3b5a",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "17GKR5B1CD.HU188K"
    }
  40. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/747668044123 · HTTP 200 · request 1be176b9c7bf · processing 1.86ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/747668044123' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.86ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "747668044123",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/aea6d81d"
    }
  41. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/747668044123 · HTTP 400 · request b272d5e46809 · processing 1.67ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/747668044123' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.67ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "150",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        }
      ]
    }
  42. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/subscription_turned_off/runs · subscription turned off · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/subscription_turned_off/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:58.692255+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "subscription-turned-off-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "subscription_turned_off"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 747668044123",
              "durationMs": 232
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-subscription-turned-off%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 169
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 192
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:747668044123",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_subscription_turned_off",
                "contact": "747668044123",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/747668044123 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_5B9F2HLYYVKWFD9V",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_subscription_turned_off",
                "customer": "cus_5B9F2HLYYVKWFD9V",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_5B9F2HLYYVKWFD9V",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:15:57.753Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_subscription_turned_off",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17GKR5B1CD.HU188K",
              "appliedAt": "2026-10-22T19:15:57.922Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_subscription_turned_off",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/747668044123 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 7,
            "head": "1df948fc6508c48c559ced70eccb328c6151de51efa2eba693dd956f7810739c"
          },
          "output": {
            "mode": "partial",
            "contact": "747668044123",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:15:56.803Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:15:57.036Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:15:57.038Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:15:57.393Z",
              "msg": "hubspot.consent:747668044123: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:57.753Z",
              "msg": "stripe.consent:cus_5B9F2HLYYVKWFD9V: applied"
            },
            {
              "at": "2026-10-22T19:15:57.922Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:15:58.243Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:58.246Z",
              "msg": "done (partial)"
            }
          ],
          "createdAt": "2026-10-22T19:15:56.803Z",
          "updatedAt": "2026-10-22T19:15:58.246Z"
        }
      ]
    }
  43. · POST app request /invocations · subscription turned off · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "subscription-turned-off-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_subscription_turned_off",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "subscription_turned_off"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:58.923592+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "572",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "subscription-turned-off-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_subscription_turned_off",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "subscription_turned_off"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "subscription-turned-off-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "subscription_turned_off"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 747668044123",
          "durationMs": 232
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-subscription-turned-off%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 169
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 192
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:747668044123",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_subscription_turned_off",
            "contact": "747668044123",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/747668044123 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_5B9F2HLYYVKWFD9V",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_subscription_turned_off",
            "customer": "cus_5B9F2HLYYVKWFD9V",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_5B9F2HLYYVKWFD9V",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:15:57.753Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_subscription_turned_off",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17GKR5B1CD.HU188K",
          "appliedAt": "2026-10-22T19:15:57.922Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_subscription_turned_off",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/747668044123 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 8,
        "head": "ca6ddfcaa1d9ba4c64e3dacdf48c862a7ee71c26ff13d570607867f4d04a8ef5"
      },
      "output": {
        "mode": "partial",
        "contact": "747668044123",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:56.803Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:57.036Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:57.038Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:15:57.393Z",
          "msg": "hubspot.consent:747668044123: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:57.753Z",
          "msg": "stripe.consent:cus_5B9F2HLYYVKWFD9V: applied"
        },
        {
          "at": "2026-10-22T19:15:57.922Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:15:58.243Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:15:58.246Z",
          "msg": "done (partial)"
        },
        {
          "at": "2026-10-22T19:15:58.810Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:15:56.803Z",
      "updatedAt": "2026-10-22T19:15:58.810Z",
      "duplicate": true
    }
  44. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/subscription_turned_off/runs · subscription turned off · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/subscription_turned_off/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:59.283589+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "subscription-turned-off-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "subscription_turned_off"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 747668044123",
              "durationMs": 232
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-subscription-turned-off%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 169
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 192
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:747668044123",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_subscription_turned_off",
                "contact": "747668044123",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/747668044123 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_5B9F2HLYYVKWFD9V",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_subscription_turned_off",
                "customer": "cus_5B9F2HLYYVKWFD9V",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_5B9F2HLYYVKWFD9V",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:15:57.753Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_subscription_turned_off",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17GKR5B1CD.HU188K",
              "appliedAt": "2026-10-22T19:15:57.922Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_subscription_turned_off",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/747668044123 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 8,
            "head": "ca6ddfcaa1d9ba4c64e3dacdf48c862a7ee71c26ff13d570607867f4d04a8ef5"
          },
          "output": {
            "mode": "partial",
            "contact": "747668044123",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:15:56.803Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:15:57.036Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:15:57.038Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:15:57.393Z",
              "msg": "hubspot.consent:747668044123: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:57.753Z",
              "msg": "stripe.consent:cus_5B9F2HLYYVKWFD9V: applied"
            },
            {
              "at": "2026-10-22T19:15:57.922Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:15:58.243Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:15:58.246Z",
              "msg": "done (partial)"
            },
            {
              "at": "2026-10-22T19:15:58.810Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:15:56.803Z",
          "updatedAt": "2026-10-22T19:15:58.810Z"
        }
      ]
    }
  45. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/every_customer_updated/runs · every customer updated · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/every_customer_updated/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:15:59.497271+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  46. · POST app request /invocations · every customer updated · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "every-customer-updated-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_every_customer_updated",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "every_customer_updated"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:01.675604+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "568",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "every-customer-updated-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_every_customer_updated",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "every_customer_updated"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "every-customer-updated-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "every_customer_updated"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 859212791149",
          "durationMs": 215
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-every-customer-updated%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 118
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "2 Stripe customer(s)",
          "durationMs": 188
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:859212791149",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "contact": "859212791149",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/859212791149 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_FGREQBS2MK9B620Y",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "customer": "cus_FGREQBS2MK9B620Y",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_FGREQBS2MK9B620Y",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:00.565Z",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_Y49K0KNHLVVEE0JK",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "customer": "cus_Y49K0KNHLVVEE0JK",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_Y49K0KNHLVVEE0JK",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:00.932Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17NPXHAI07.4ML7LG",
          "appliedAt": "2026-10-22T19:16:01.116Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "afterMinutes": 15,
            "systems": 3
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/859212791149 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 3,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 8,
        "head": "36cb889cfb522148c16e492e8d799f2ceb267b711aaabf3b0d9c173447aa3dfc"
      },
      "output": {
        "mode": "partial",
        "contact": "859212791149",
        "customers": 2,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:59.612Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:59.829Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:59.831Z",
          "msg": "planned 5 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:00.193Z",
          "msg": "hubspot.consent:859212791149: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:00.565Z",
          "msg": "stripe.consent:cus_FGREQBS2MK9B620Y: applied"
        },
        {
          "at": "2026-10-22T19:16:00.932Z",
          "msg": "stripe.consent:cus_Y49K0KNHLVVEE0JK: applied"
        },
        {
          "at": "2026-10-22T19:16:01.117Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:01.457Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:01.459Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:15:59.612Z",
      "updatedAt": "2026-10-22T19:16:01.459Z",
      "duplicate": false
    }
  47. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request c15200a0bae5 · processing 0.16ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.16ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  48. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 2f3636ae6788 · processing 25.86ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 25.86ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_FGREQBS2MK9B620Y",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 69,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null
        },
        {
          "email": "[email protected]",
          "name": "Subject 1",
          "id": "cus_Y49K0KNHLVVEE0JK",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 71,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  49. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 4d16601ad24a · processing 2.31ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 2.31ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "416",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 200

    {
      "total": 1,
      "results": [
        {
          "properties": {
            "email": "[email protected]"
          },
          "id": "859212791149",
          "archived": false,
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z"
        }
      ]
    }
  50. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/859212791149 · HTTP 200 · request bdcc2ecf69ea · processing 1.71ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/859212791149' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.71ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "859212791149",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/20774107"
    }
  51. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/859212791149 · HTTP 400 · request 486107d61b5c · processing 6.67ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/859212791149' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_every_customer_updated"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 6.67ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "205",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_every_customer_updated"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_last_event\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_last_event\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_last_event\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_last_event"
        }
      ]
    }
  52. · GET stripe request · provider traffic · /v1/customers/cus_FGREQBS2MK9B620Y · HTTP 200 · request e688be81b65c · processing 25.55ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_FGREQBS2MK9B620Y' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 25.55ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 69,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_FGREQBS2MK9B620Y",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  53. · POST stripe request · provider traffic · /v1/customers/cus_FGREQBS2MK9B620Y · HTTP 200 · request 47aafb3d832b · processing 15.12ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_FGREQBS2MK9B620Y' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data-raw '{
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_every_customer_updated"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 15.12ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "230",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/x-www-form-urlencoded"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_every_customer_updated"
      }
    }

    Recorded response · HTTP 200

    {
      "email": "[email protected]",
      "name": "Subject 0",
      "id": "cus_FGREQBS2MK9B620Y",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 69,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_every_customer_updated"
      }
    }
  54. · GET stripe request · provider traffic · /v1/customers/cus_Y49K0KNHLVVEE0JK · HTTP 200 · request e85d3d1068b1 · processing 16.84ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_Y49K0KNHLVVEE0JK' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.84ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 71,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_Y49K0KNHLVVEE0JK",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 1",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  55. · POST stripe request · provider traffic · /v1/customers/cus_Y49K0KNHLVVEE0JK · HTTP 200 · request c46a411e6386 · processing 21.42ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_Y49K0KNHLVVEE0JK' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data-raw '{
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_every_customer_updated"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 21.42ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "230",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/x-www-form-urlencoded"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_every_customer_updated"
      }
    }

    Recorded response · HTTP 200

    {
      "email": "[email protected]",
      "name": "Subject 1",
      "id": "cus_Y49K0KNHLVVEE0JK",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 71,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_every_customer_updated"
      }
    }
  56. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 25855ff1fbf9 · processing 16.43ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_every_customer_updated (subject 82137aecba) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.43ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "242",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_every_customer_updated (subject 82137aecba) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_c25b63145b504d2cb05ff00542",
        "client_msg_id": "cli_5d7998175bc145ceab3899e011",
        "name": "item-ad361d",
        "old_name": "Sample Old",
        "parent_user_id": "par_57e49fd4fa194f3c845c76b6d1",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "17NPXHAI07.4ML7LG"
    }
  57. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/859212791149 · HTTP 200 · request 20ead9e9c4ca · processing 2.6ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/859212791149' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 2.6ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "859212791149",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/a9385d75"
    }
  58. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/859212791149 · HTTP 400 · request 1180ef94110d · processing 2.43ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/859212791149' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 2.43ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "150",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        }
      ]
    }
  59. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/every_customer_updated/runs · every customer updated · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/every_customer_updated/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:02.116634+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "every-customer-updated-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "every_customer_updated"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 859212791149",
              "durationMs": 215
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-every-customer-updated%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 118
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "2 Stripe customer(s)",
              "durationMs": 188
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:859212791149",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "contact": "859212791149",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/859212791149 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_FGREQBS2MK9B620Y",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "customer": "cus_FGREQBS2MK9B620Y",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_FGREQBS2MK9B620Y",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:00.565Z",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_Y49K0KNHLVVEE0JK",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "customer": "cus_Y49K0KNHLVVEE0JK",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_Y49K0KNHLVVEE0JK",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:00.932Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17NPXHAI07.4ML7LG",
              "appliedAt": "2026-10-22T19:16:01.116Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "afterMinutes": 15,
                "systems": 3
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/859212791149 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 3,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 8,
            "head": "36cb889cfb522148c16e492e8d799f2ceb267b711aaabf3b0d9c173447aa3dfc"
          },
          "output": {
            "mode": "partial",
            "contact": "859212791149",
            "customers": 2,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:15:59.612Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:15:59.829Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:15:59.831Z",
              "msg": "planned 5 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:00.193Z",
              "msg": "hubspot.consent:859212791149: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:00.565Z",
              "msg": "stripe.consent:cus_FGREQBS2MK9B620Y: applied"
            },
            {
              "at": "2026-10-22T19:16:00.932Z",
              "msg": "stripe.consent:cus_Y49K0KNHLVVEE0JK: applied"
            },
            {
              "at": "2026-10-22T19:16:01.117Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:01.457Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:01.459Z",
              "msg": "done (partial)"
            }
          ],
          "createdAt": "2026-10-22T19:15:59.612Z",
          "updatedAt": "2026-10-22T19:16:01.459Z"
        }
      ]
    }
  60. · POST app request /invocations · every customer updated · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "every-customer-updated-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_every_customer_updated",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "every_customer_updated"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:02.484360+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "568",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "every-customer-updated-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_every_customer_updated",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "every_customer_updated"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "every-customer-updated-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "every_customer_updated"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 859212791149",
          "durationMs": 215
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-every-customer-updated%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 118
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "2 Stripe customer(s)",
          "durationMs": 188
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:859212791149",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "contact": "859212791149",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/859212791149 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_FGREQBS2MK9B620Y",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "customer": "cus_FGREQBS2MK9B620Y",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_FGREQBS2MK9B620Y",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:00.565Z",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_Y49K0KNHLVVEE0JK",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "customer": "cus_Y49K0KNHLVVEE0JK",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_Y49K0KNHLVVEE0JK",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:00.932Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17NPXHAI07.4ML7LG",
          "appliedAt": "2026-10-22T19:16:01.116Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_every_customer_updated",
            "afterMinutes": 15,
            "systems": 3
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/859212791149 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 3,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 9,
        "head": "caa3161089e5c393edac62f90f95104b91747399f7b30848527eb443ec24fa20"
      },
      "output": {
        "mode": "partial",
        "contact": "859212791149",
        "customers": 2,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:15:59.612Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:15:59.829Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:15:59.831Z",
          "msg": "planned 5 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:00.193Z",
          "msg": "hubspot.consent:859212791149: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:00.565Z",
          "msg": "stripe.consent:cus_FGREQBS2MK9B620Y: applied"
        },
        {
          "at": "2026-10-22T19:16:00.932Z",
          "msg": "stripe.consent:cus_Y49K0KNHLVVEE0JK: applied"
        },
        {
          "at": "2026-10-22T19:16:01.117Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:01.457Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:01.459Z",
          "msg": "done (partial)"
        },
        {
          "at": "2026-10-22T19:16:02.280Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:15:59.612Z",
      "updatedAt": "2026-10-22T19:16:02.280Z",
      "duplicate": true
    }
  61. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/every_customer_updated/runs · every customer updated · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/every_customer_updated/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:02.879754+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "every-customer-updated-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "every_customer_updated"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 859212791149",
              "durationMs": 215
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-every-customer-updated%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 118
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "2 Stripe customer(s)",
              "durationMs": 188
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:859212791149",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "contact": "859212791149",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/859212791149 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_FGREQBS2MK9B620Y",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "customer": "cus_FGREQBS2MK9B620Y",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_FGREQBS2MK9B620Y",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:00.565Z",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_Y49K0KNHLVVEE0JK",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "customer": "cus_Y49K0KNHLVVEE0JK",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_Y49K0KNHLVVEE0JK",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:00.932Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17NPXHAI07.4ML7LG",
              "appliedAt": "2026-10-22T19:16:01.116Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_every_customer_updated",
                "afterMinutes": 15,
                "systems": 3
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/859212791149 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 3,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 9,
            "head": "caa3161089e5c393edac62f90f95104b91747399f7b30848527eb443ec24fa20"
          },
          "output": {
            "mode": "partial",
            "contact": "859212791149",
            "customers": 2,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:15:59.612Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:15:59.829Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:15:59.831Z",
              "msg": "planned 5 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:00.193Z",
              "msg": "hubspot.consent:859212791149: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:00.565Z",
              "msg": "stripe.consent:cus_FGREQBS2MK9B620Y: applied"
            },
            {
              "at": "2026-10-22T19:16:00.932Z",
              "msg": "stripe.consent:cus_Y49K0KNHLVVEE0JK: applied"
            },
            {
              "at": "2026-10-22T19:16:01.117Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:01.457Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:01.459Z",
              "msg": "done (partial)"
            },
            {
              "at": "2026-10-22T19:16:02.280Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:15:59.612Z",
          "updatedAt": "2026-10-22T19:16:02.280Z"
        }
      ]
    }
  62. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/stale_event_ignored/runs · stale event ignored · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/stale_event_ignored/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:03.131068+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  63. · POST app request /invocations · stale event ignored · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "stale-event-ignored-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_stale_event_ignored",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "stale_event_ignored"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:04.698760+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "556",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "stale-event-ignored-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_stale_event_ignored",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "stale_event_ignored"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "stale-event-ignored-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "WAITING",
      "closed": false,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "stale_event_ignored"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "no HubSpot contact",
          "durationMs": 764
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-stale-event-ignored%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 749
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 705
        }
      ],
      "actions": [
        {
          "id": "stripe.consent:cus_B035GET7XKTBTJJ2",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_stale_event_ignored",
            "customer": "cus_B035GET7XKTBTJJ2",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_B035GET7XKTBTJJ2",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:04.396Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_stale_event_ignored",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17VQRTHK7C.33GNQ4",
          "appliedAt": "2026-10-22T19:16:04.573Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "scheduled",
          "summary": {
            "eventId": "evt_stale_event_ignored",
            "afterMinutes": 15,
            "systems": 1
          },
          "attempts": 0,
          "waitUntil": "2026-10-22T19:31:04.396Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 1,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": "2026-10-22T19:31:04.396Z",
      "audit": {
        "seq": 6,
        "head": "afc3fcf9082f77ad13f1976d338a5a409dd33d8003edec5dc39e6361551910b3"
      },
      "output": {
        "mode": "partial",
        "contact": null,
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:16:03.273Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:16:04.039Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:16:04.042Z",
          "msg": "planned 3 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:04.396Z",
          "msg": "stripe.consent:cus_B035GET7XKTBTJJ2: applied"
        },
        {
          "at": "2026-10-22T19:16:04.573Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:04.575Z",
          "msg": "consent.verify: scheduled"
        },
        {
          "at": "2026-10-22T19:16:04.579Z",
          "msg": "waiting until 2026-10-22T19:31:04.396Z"
        }
      ],
      "createdAt": "2026-10-22T19:16:03.273Z",
      "updatedAt": "2026-10-22T19:16:04.579Z",
      "duplicate": false
    }
  64. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request f0ebcd6c9f5a · processing 17.42ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 17.42ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_B035GET7XKTBTJJ2",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 96,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  65. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request ac787297f8b6 · processing 0.23ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.23ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  66. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 9137bd491ab9 · processing 1.71ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.71ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "413",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 200

    {
      "total": 0,
      "results": []
    }
  67. · GET stripe request · provider traffic · /v1/customers/cus_B035GET7XKTBTJJ2 · HTTP 200 · request 2e3264c4dfeb · processing 18.76ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_B035GET7XKTBTJJ2' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 18.76ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 96,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_B035GET7XKTBTJJ2",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  68. · POST stripe request · provider traffic · /v1/customers/cus_B035GET7XKTBTJJ2 · HTTP 200 · request c95b77113541 · processing 16.22ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_B035GET7XKTBTJJ2' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data-raw '{
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_stale_event_ignored"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.22ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "227",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/x-www-form-urlencoded"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_stale_event_ignored"
      }
    }

    Recorded response · HTTP 200

    {
      "email": "[email protected]",
      "name": "Subject 0",
      "id": "cus_B035GET7XKTBTJJ2",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 96,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_stale_event_ignored"
      }
    }
  69. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request d5151898f7ae · processing 14.35ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_stale_event_ignored (subject ec26ecab60) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 14.35ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "239",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_stale_event_ignored (subject ec26ecab60) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_a46de59bbd0a4c5c9760782cf8",
        "client_msg_id": "cli_c691fbcb6d4d4008a735a4cf3b",
        "name": "item-2aecc6",
        "old_name": "Sample Old",
        "parent_user_id": "par_41171c91e0bc4106b4d56c6e78",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "17VQRTHK7C.33GNQ4"
    }
  70. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/stale_event_ignored/runs · stale event ignored · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/stale_event_ignored/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:05.019920+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "stale-event-ignored-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "WAITING",
          "closed": false,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "stale_event_ignored"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "no HubSpot contact",
              "durationMs": 764
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-stale-event-ignored%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 749
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 705
            }
          ],
          "actions": [
            {
              "id": "stripe.consent:cus_B035GET7XKTBTJJ2",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_stale_event_ignored",
                "customer": "cus_B035GET7XKTBTJJ2",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_B035GET7XKTBTJJ2",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:04.396Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_stale_event_ignored",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17VQRTHK7C.33GNQ4",
              "appliedAt": "2026-10-22T19:16:04.573Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "scheduled",
              "summary": {
                "eventId": "evt_stale_event_ignored",
                "afterMinutes": 15,
                "systems": 1
              },
              "attempts": 0,
              "waitUntil": "2026-10-22T19:31:04.396Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 1,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": "2026-10-22T19:31:04.396Z",
          "audit": {
            "seq": 6,
            "head": "afc3fcf9082f77ad13f1976d338a5a409dd33d8003edec5dc39e6361551910b3"
          },
          "output": {
            "mode": "partial",
            "contact": null,
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:16:03.273Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:16:04.039Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:16:04.042Z",
              "msg": "planned 3 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:04.396Z",
              "msg": "stripe.consent:cus_B035GET7XKTBTJJ2: applied"
            },
            {
              "at": "2026-10-22T19:16:04.573Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:04.575Z",
              "msg": "consent.verify: scheduled"
            },
            {
              "at": "2026-10-22T19:16:04.579Z",
              "msg": "waiting until 2026-10-22T19:31:04.396Z"
            }
          ],
          "createdAt": "2026-10-22T19:16:03.273Z",
          "updatedAt": "2026-10-22T19:16:04.579Z"
        }
      ]
    }
  71. · POST app request /invocations · stale event ignored · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "stale-event-ignored-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_stale_event_ignored",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "stale_event_ignored"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:05.289725+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "556",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "stale-event-ignored-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_stale_event_ignored",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "stale_event_ignored"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "stale-event-ignored-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "WAITING",
      "closed": false,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "stale_event_ignored"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "no HubSpot contact",
          "durationMs": 764
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-stale-event-ignored%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 749
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 705
        }
      ],
      "actions": [
        {
          "id": "stripe.consent:cus_B035GET7XKTBTJJ2",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_stale_event_ignored",
            "customer": "cus_B035GET7XKTBTJJ2",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_B035GET7XKTBTJJ2",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:04.396Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_stale_event_ignored",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17VQRTHK7C.33GNQ4",
          "appliedAt": "2026-10-22T19:16:04.573Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "scheduled",
          "summary": {
            "eventId": "evt_stale_event_ignored",
            "afterMinutes": 15,
            "systems": 1
          },
          "attempts": 0,
          "waitUntil": "2026-10-22T19:31:04.396Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 1,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": "2026-10-22T19:31:04.396Z",
      "audit": {
        "seq": 7,
        "head": "085ab319ed6285f9d05b2e91a9fb7afb361132f053608401e4c50c58cf2948c8"
      },
      "output": {
        "mode": "partial",
        "contact": null,
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:16:03.273Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:16:04.039Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:16:04.042Z",
          "msg": "planned 3 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:04.396Z",
          "msg": "stripe.consent:cus_B035GET7XKTBTJJ2: applied"
        },
        {
          "at": "2026-10-22T19:16:04.573Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:04.575Z",
          "msg": "consent.verify: scheduled"
        },
        {
          "at": "2026-10-22T19:16:04.579Z",
          "msg": "waiting until 2026-10-22T19:31:04.396Z"
        },
        {
          "at": "2026-10-22T19:16:05.126Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:16:03.273Z",
      "updatedAt": "2026-10-22T19:16:05.126Z",
      "duplicate": true
    }
  72. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/stale_event_ignored/runs · stale event ignored · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/stale_event_ignored/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:05.614289+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "stale-event-ignored-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "WAITING",
          "closed": false,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "stale_event_ignored"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "no HubSpot contact",
              "durationMs": 764
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-stale-event-ignored%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 749
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 705
            }
          ],
          "actions": [
            {
              "id": "stripe.consent:cus_B035GET7XKTBTJJ2",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_stale_event_ignored",
                "customer": "cus_B035GET7XKTBTJJ2",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_B035GET7XKTBTJJ2",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:04.396Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_stale_event_ignored",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17VQRTHK7C.33GNQ4",
              "appliedAt": "2026-10-22T19:16:04.573Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "scheduled",
              "summary": {
                "eventId": "evt_stale_event_ignored",
                "afterMinutes": 15,
                "systems": 1
              },
              "attempts": 0,
              "waitUntil": "2026-10-22T19:31:04.396Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 1,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": "2026-10-22T19:31:04.396Z",
          "audit": {
            "seq": 7,
            "head": "085ab319ed6285f9d05b2e91a9fb7afb361132f053608401e4c50c58cf2948c8"
          },
          "output": {
            "mode": "partial",
            "contact": null,
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:16:03.273Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:16:04.039Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:16:04.042Z",
              "msg": "planned 3 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:04.396Z",
              "msg": "stripe.consent:cus_B035GET7XKTBTJJ2: applied"
            },
            {
              "at": "2026-10-22T19:16:04.573Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:04.575Z",
              "msg": "consent.verify: scheduled"
            },
            {
              "at": "2026-10-22T19:16:04.579Z",
              "msg": "waiting until 2026-10-22T19:31:04.396Z"
            },
            {
              "at": "2026-10-22T19:16:05.126Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:16:03.273Z",
          "updatedAt": "2026-10-22T19:16:05.126Z"
        }
      ]
    }
  73. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/replay_changes_nothing/runs · replay changes nothing · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/replay_changes_nothing/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:05.828178+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  74. · POST app request /invocations · replay changes nothing · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "replay-changes-nothing-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_replay_changes_nothing",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "replay_changes_nothing"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:07.397846+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "568",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "replay-changes-nothing-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_replay_changes_nothing",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "replay_changes_nothing"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "replay-changes-nothing-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "replay_changes_nothing"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 345807718578",
          "durationMs": 224
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-replay-changes-nothing%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 185
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 164
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:345807718578",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_replay_changes_nothing",
            "contact": "345807718578",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/345807718578 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_LLELR1B7BQ11I8U0",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_replay_changes_nothing",
            "customer": "cus_LLELR1B7BQ11I8U0",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_LLELR1B7BQ11I8U0",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:06.787Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_replay_changes_nothing",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17QQ3IH2XG.9Y91C9",
          "appliedAt": "2026-10-22T19:16:06.961Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_replay_changes_nothing",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/345807718578 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 7,
        "head": "1aed06501a99b796646af75d3a277a2391446785308a3ab20f2375c8ec5f0042"
      },
      "output": {
        "mode": "partial",
        "contact": "345807718578",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:16:05.930Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:16:06.155Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:16:06.158Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:06.474Z",
          "msg": "hubspot.consent:345807718578: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:06.788Z",
          "msg": "stripe.consent:cus_LLELR1B7BQ11I8U0: applied"
        },
        {
          "at": "2026-10-22T19:16:06.962Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:07.279Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:07.285Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:16:05.930Z",
      "updatedAt": "2026-10-22T19:16:07.285Z",
      "duplicate": false
    }
  75. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 1d283511e2f6 · processing 16.78ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.78ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_LLELR1B7BQ11I8U0",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 0,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  76. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request b3fb5b9edb0e · processing 0.15ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.15ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  77. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 15d55c0c9a8b · processing 1.63ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.63ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "416",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 200

    {
      "total": 1,
      "results": [
        {
          "properties": {
            "email": "[email protected]"
          },
          "id": "345807718578",
          "archived": false,
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z"
        }
      ]
    }
  78. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/345807718578 · HTTP 200 · request 8b80eafe112b · processing 1.82ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/345807718578' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.82ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "345807718578",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/435ffe3e"
    }
  79. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/345807718578 · HTTP 400 · request 64bad2bc566d · processing 1.63ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/345807718578' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_replay_changes_nothing"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.63ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "205",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_replay_changes_nothing"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_last_event\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_last_event\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_last_event\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_last_event"
        }
      ]
    }
  80. · GET stripe request · provider traffic · /v1/customers/cus_LLELR1B7BQ11I8U0 · HTTP 200 · request 3d76ceea540f · processing 16.7ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_LLELR1B7BQ11I8U0' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.7ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 0,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_LLELR1B7BQ11I8U0",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  81. · POST stripe request · provider traffic · /v1/customers/cus_LLELR1B7BQ11I8U0 · HTTP 200 · request a13e9d2075e8 · processing 16.8ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_LLELR1B7BQ11I8U0' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data-raw '{
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_replay_changes_nothing"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.8ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "230",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/x-www-form-urlencoded"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_replay_changes_nothing"
      }
    }

    Recorded response · HTTP 200

    {
      "email": "[email protected]",
      "name": "Subject 0",
      "id": "cus_LLELR1B7BQ11I8U0",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 0,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_replay_changes_nothing"
      }
    }
  82. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 45e5beb6d5be · processing 14.19ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_replay_changes_nothing (subject b9e630ff70) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 14.19ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "242",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_replay_changes_nothing (subject b9e630ff70) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_e204a53a65f84e2ba8286b1288",
        "client_msg_id": "cli_4f4611e85a7c4a05842d3c5c64",
        "name": "item-2dd748",
        "old_name": "Sample Old",
        "parent_user_id": "par_7095afc5cf1a4dcf878c544fe1",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "17QQ3IH2XG.9Y91C9"
    }
  83. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/345807718578 · HTTP 200 · request 7373facd880f · processing 1.85ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/345807718578' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.85ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "345807718578",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/9c87bece"
    }
  84. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/345807718578 · HTTP 400 · request 00b8d9397359 · processing 1.77ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/345807718578' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.77ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "150",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        }
      ]
    }
  85. · POST app request /invocations · replay changes nothing · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "replay-b-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_replay_changes_nothing",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "replay_changes_nothing"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:08.819257+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "554",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "replay-b-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_replay_changes_nothing",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "replay_changes_nothing"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "replay-b-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "replay_changes_nothing"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 345807718578",
          "durationMs": 207
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-replay-changes-nothing%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 120
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 191
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:345807718578",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_replay_changes_nothing",
            "contact": "345807718578",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/345807718578 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_LLELR1B7BQ11I8U0",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "skipped",
          "summary": {
            "eventId": "evt_replay_changes_nothing",
            "customer": "cus_LLELR1B7BQ11I8U0",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 0,
          "detail": {
            "reason": "already applied"
          },
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_replay_changes_nothing",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17UO7HT0K5.CXWOR2",
          "appliedAt": "2026-10-22T19:16:08.386Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_replay_changes_nothing",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/345807718578 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 1,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 1,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 7,
        "head": "d6bd7141390ead2b0b8d1cb481642b6cba3e50342050a8eaa45ea6c310f749d1"
      },
      "output": {
        "mode": "partial",
        "contact": "345807718578",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:16:07.507Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:16:07.715Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:16:07.720Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:08.059Z",
          "msg": "hubspot.consent:345807718578: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:08.197Z",
          "msg": "stripe.consent:cus_LLELR1B7BQ11I8U0: skipped"
        },
        {
          "at": "2026-10-22T19:16:08.386Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:08.701Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:08.704Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:16:07.507Z",
      "updatedAt": "2026-10-22T19:16:08.704Z",
      "duplicate": false
    }
  86. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request 9c156a34c542 · processing 0.15ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.15ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  87. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request e0b15efb3287 · processing 2.21ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 2.21ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "416",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 200

    {
      "total": 1,
      "results": [
        {
          "properties": {
            "email": "[email protected]"
          },
          "id": "345807718578",
          "archived": false,
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z"
        }
      ]
    }
  88. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 7adf10257a2b · processing 15.62ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 15.62ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_LLELR1B7BQ11I8U0",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 0,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null,
          "metadata": {
            "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
            "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
            "acme_consent_last_event": "evt_replay_changes_nothing"
          }
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  89. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/345807718578 · HTTP 200 · request 2d06827fa823 · processing 1.73ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/345807718578' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.73ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "345807718578",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/5c7abef4"
    }
  90. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/345807718578 · HTTP 400 · request 50bf093689d0 · processing 1.55ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/345807718578' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_replay_changes_nothing"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.55ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "205",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_replay_changes_nothing"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_last_event\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_last_event\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_last_event\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_last_event"
        }
      ]
    }
  91. · GET stripe request · provider traffic · /v1/customers/cus_LLELR1B7BQ11I8U0 · HTTP 200 · request 1aec97e7be3f · processing 16.69ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_LLELR1B7BQ11I8U0' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.69ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 0,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_LLELR1B7BQ11I8U0",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_replay_changes_nothing"
      }
    }
  92. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 2bc8ea12f8ca · processing 13.69ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_replay_changes_nothing (subject b9e630ff70) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 13.69ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "242",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_replay_changes_nothing (subject b9e630ff70) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_14952b69c26d4e6096757d960f",
        "client_msg_id": "cli_a9c426eeb5944e62871d328b2c",
        "name": "item-31d4e4",
        "old_name": "Sample Old",
        "parent_user_id": "par_1d70a75665b5479cae2ed65c07",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "17UO7HT0K5.CXWOR2"
    }
  93. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/345807718578 · HTTP 200 · request 77db9765e742 · processing 1.79ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/345807718578' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.79ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "345807718578",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/5579fa1a"
    }
  94. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/345807718578 · HTTP 400 · request 2b83382cfda0 · processing 1.61ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/345807718578' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.61ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "150",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        }
      ]
    }
  95. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/replay_changes_nothing/runs · replay changes nothing · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/replay_changes_nothing/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:09.174043+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "replay-changes-nothing-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "replay_changes_nothing"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 345807718578",
              "durationMs": 224
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-replay-changes-nothing%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 185
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 164
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:345807718578",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_replay_changes_nothing",
                "contact": "345807718578",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/345807718578 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_LLELR1B7BQ11I8U0",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_replay_changes_nothing",
                "customer": "cus_LLELR1B7BQ11I8U0",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_LLELR1B7BQ11I8U0",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:06.787Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_replay_changes_nothing",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17QQ3IH2XG.9Y91C9",
              "appliedAt": "2026-10-22T19:16:06.961Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_replay_changes_nothing",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/345807718578 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 7,
            "head": "1aed06501a99b796646af75d3a277a2391446785308a3ab20f2375c8ec5f0042"
          },
          "output": {
            "mode": "partial",
            "contact": "345807718578",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:16:05.930Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:16:06.155Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:16:06.158Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:06.474Z",
              "msg": "hubspot.consent:345807718578: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:06.788Z",
              "msg": "stripe.consent:cus_LLELR1B7BQ11I8U0: applied"
            },
            {
              "at": "2026-10-22T19:16:06.962Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:07.279Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:07.285Z",
              "msg": "done (partial)"
            }
          ],
          "createdAt": "2026-10-22T19:16:05.930Z",
          "updatedAt": "2026-10-22T19:16:07.285Z"
        },
        {
          "runId": "replay-b-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "replay_changes_nothing"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 345807718578",
              "durationMs": 207
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-replay-changes-nothing%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 120
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 191
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:345807718578",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_replay_changes_nothing",
                "contact": "345807718578",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/345807718578 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_LLELR1B7BQ11I8U0",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "skipped",
              "summary": {
                "eventId": "evt_replay_changes_nothing",
                "customer": "cus_LLELR1B7BQ11I8U0",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 0,
              "detail": {
                "reason": "already applied"
              },
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_replay_changes_nothing",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17UO7HT0K5.CXWOR2",
              "appliedAt": "2026-10-22T19:16:08.386Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_replay_changes_nothing",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/345807718578 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 1,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 1,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 7,
            "head": "d6bd7141390ead2b0b8d1cb481642b6cba3e50342050a8eaa45ea6c310f749d1"
          },
          "output": {
            "mode": "partial",
            "contact": "345807718578",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:16:07.507Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:16:07.715Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:16:07.720Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:08.059Z",
              "msg": "hubspot.consent:345807718578: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:08.197Z",
              "msg": "stripe.consent:cus_LLELR1B7BQ11I8U0: skipped"
            },
            {
              "at": "2026-10-22T19:16:08.386Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:08.701Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:08.704Z",
              "msg": "done (partial)"
            }
          ],
          "createdAt": "2026-10-22T19:16:07.507Z",
          "updatedAt": "2026-10-22T19:16:08.704Z"
        }
      ]
    }
  96. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/verified_after_15_minutes/runs · verified after 15 minutes · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/verified_after_15_minutes/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:09.428132+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  97. · POST app request /invocations · verified after 15 minutes · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "verified-after-15-minutes-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_verified_after_15_minutes",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "verified_after_15_minutes"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:11.051172+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "580",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "verified-after-15-minutes-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_verified_after_15_minutes",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "verified_after_15_minutes"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "verified-after-15-minutes-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "verified_after_15_minutes"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "ok",
          "summary": "contact 838613875000",
          "durationMs": 208
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-verified-after-15-minutes%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 129
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 181
        }
      ],
      "actions": [
        {
          "id": "hubspot.consent:838613875000",
          "kind": "hubspot.consent",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_verified_after_15_minutes",
            "contact": "838613875000",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/838613875000 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        },
        {
          "id": "stripe.consent:cus_ASI9WP6KYA59OM6K",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_verified_after_15_minutes",
            "customer": "cus_ASI9WP6KYA59OM6K",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_ASI9WP6KYA59OM6K",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:10.417Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_verified_after_15_minutes",
            "missing": [
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "17JFJ6M552.3JJ3GD",
          "appliedAt": "2026-10-22T19:16:10.604Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "eventId": "evt_verified_after_15_minutes",
            "afterMinutes": 15,
            "systems": 2
          },
          "attempts": 1,
          "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/838613875000 → 400 VALIDATION_ERROR",
          "errorCode": "hubspot:VALIDATION_ERROR",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 2,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 7,
        "head": "055600d2ba07bb2e8102f2cda76c52585d6541ca0e49dc6b139caf797ec97fc7"
      },
      "output": {
        "mode": "partial",
        "contact": "838613875000",
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:16:09.532Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:16:09.742Z",
          "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:16:09.748Z",
          "msg": "planned 4 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:10.090Z",
          "msg": "hubspot.consent:838613875000: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:10.418Z",
          "msg": "stripe.consent:cus_ASI9WP6KYA59OM6K: applied"
        },
        {
          "at": "2026-10-22T19:16:10.604Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:10.927Z",
          "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
        },
        {
          "at": "2026-10-22T19:16:10.930Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:16:09.532Z",
      "updatedAt": "2026-10-22T19:16:10.930Z",
      "duplicate": false
    }
  98. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request 54b768c096fa · processing 0.15ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.15ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  99. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request cade491e1bc1 · processing 16.68ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.68ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_ASI9WP6KYA59OM6K",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 23,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  100. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request f866a5b61301 · processing 1.7ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.7ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "419",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 200

    {
      "total": 1,
      "results": [
        {
          "properties": {
            "email": "[email protected]"
          },
          "id": "838613875000",
          "archived": false,
          "createdAt": "2019-10-30T03:30:17.883Z",
          "updatedAt": "2019-12-07T16:50:06.678Z"
        }
      ]
    }
  101. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/838613875000 · HTTP 200 · request 500cf42d8f63 · processing 1.86ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/838613875000' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.86ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "838613875000",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/b135e654"
    }
  102. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/838613875000 · HTTP 400 · request afe51a5d3365 · processing 1.84ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/838613875000' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_verified_after_15_minutes"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.84ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "208",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_verified_after_15_minutes"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_last_event\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_last_event\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_last_event\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_last_event"
        }
      ]
    }
  103. · GET stripe request · provider traffic · /v1/customers/cus_ASI9WP6KYA59OM6K · HTTP 200 · request 9f67fa717945 · processing 19.63ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_ASI9WP6KYA59OM6K' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 19.63ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 23,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_ASI9WP6KYA59OM6K",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  104. · POST stripe request · provider traffic · /v1/customers/cus_ASI9WP6KYA59OM6K · HTTP 200 · request 9f260d0e9ad1 · processing 16.64ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_ASI9WP6KYA59OM6K' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data-raw '{
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_verified_after_15_minutes"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.64ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "233",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/x-www-form-urlencoded"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_verified_after_15_minutes"
      }
    }

    Recorded response · HTTP 200

    {
      "email": "[email protected]",
      "name": "Subject 0",
      "id": "cus_ASI9WP6KYA59OM6K",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 23,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_verified_after_15_minutes"
      }
    }
  105. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request c99b7a910e35 · processing 14.32ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_verified_after_15_minutes (subject 30304f95c5) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 14.32ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "245",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_verified_after_15_minutes (subject 30304f95c5) could not be applied in HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_3b65187438e045f3b3e3317faa",
        "client_msg_id": "cli_bd5ee88ef1d14b1895ac7be8eb",
        "name": "item-6044be",
        "old_name": "Sample Old",
        "parent_user_id": "par_7c3beb1508ee4c17ae5b56e03d",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "17JFJ6M552.3JJ3GD"
    }
  106. · GET hubspot request · provider traffic · /crm/v3/objects/contacts/838613875000 · HTTP 200 · request 321567872e10 · processing 1.76ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/838613875000' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.76ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "archived": false,
      "createdAt": "2019-10-30T03:30:17.883Z",
      "id": "838613875000",
      "properties": {
        "email": "[email protected]"
      },
      "updatedAt": "2019-12-07T16:50:06.678Z",
      "url": "https://example.com/8a99158f"
    }
  107. · PATCH hubspot request · provider traffic · /crm/v3/objects/contacts/838613875000 · HTTP 400 · request 5209675323c2 · processing 1.51ms
    View sanitized request and response

    Curl-style request view

    curl --request PATCH 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/838613875000' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 1.51ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "150",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "properties": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z"
      }
    }

    Recorded response · HTTP 400

    {
      "status": "error",
      "message": "Property values were not valid: [{\"isValid\": false, \"message\": \"Property \\\"acme_consent_marketing_email\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_marketing_email\"}, {\"isValid\": false, \"message\": \"Property \\\"acme_consent_sale_or_share\\\" does not exist\", \"error\": \"PROPERTY_DOESNT_EXIST\", \"name\": \"acme_consent_sale_or_share\"}]",
      "category": "VALIDATION_ERROR",
      "errors": [
        {
          "isValid": false,
          "message": "Property \"acme_consent_marketing_email\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_marketing_email"
        },
        {
          "isValid": false,
          "message": "Property \"acme_consent_sale_or_share\" does not exist",
          "error": "PROPERTY_DOESNT_EXIST",
          "name": "acme_consent_sale_or_share"
        }
      ]
    }
  108. · POST app request /invocations · verified after 15 minutes · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "tick"
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:11.285375+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "17",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "12"
    }

    Request body

    {
      "action": "tick"
    }

    Recorded response · HTTP 200

    {
      "woken": []
    }
  109. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/verified_after_15_minutes/runs · verified after 15 minutes · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/verified_after_15_minutes/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:11.618539+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "verified-after-15-minutes-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "verified_after_15_minutes"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "ok",
              "summary": "contact 838613875000",
              "durationMs": 208
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-verified-after-15-minutes%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 129
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 181
            }
          ],
          "actions": [
            {
              "id": "hubspot.consent:838613875000",
              "kind": "hubspot.consent",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_verified_after_15_minutes",
                "contact": "838613875000",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/838613875000 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            },
            {
              "id": "stripe.consent:cus_ASI9WP6KYA59OM6K",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_verified_after_15_minutes",
                "customer": "cus_ASI9WP6KYA59OM6K",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_ASI9WP6KYA59OM6K",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:10.417Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_verified_after_15_minutes",
                "missing": [
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "17JFJ6M552.3JJ3GD",
              "appliedAt": "2026-10-22T19:16:10.604Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "eventId": "evt_verified_after_15_minutes",
                "afterMinutes": 15,
                "systems": 2
              },
              "attempts": 1,
              "error": "hubspot 400 VALIDATION_ERROR: PATCH /crm/v3/objects/contacts/838613875000 → 400 VALIDATION_ERROR",
              "errorCode": "hubspot:VALIDATION_ERROR",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 2,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 7,
            "head": "055600d2ba07bb2e8102f2cda76c52585d6541ca0e49dc6b139caf797ec97fc7"
          },
          "output": {
            "mode": "partial",
            "contact": "838613875000",
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:16:09.532Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:16:09.742Z",
              "msg": "agents: crm=ok, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:16:09.748Z",
              "msg": "planned 4 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:10.090Z",
              "msg": "hubspot.consent:838613875000: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:10.418Z",
              "msg": "stripe.consent:cus_ASI9WP6KYA59OM6K: applied"
            },
            {
              "at": "2026-10-22T19:16:10.604Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:10.927Z",
              "msg": "consent.verify: failed (hubspot:VALIDATION_ERROR)"
            },
            {
              "at": "2026-10-22T19:16:10.930Z",
              "msg": "done (partial)"
            }
          ],
          "createdAt": "2026-10-22T19:16:09.532Z",
          "updatedAt": "2026-10-22T19:16:10.930Z"
        }
      ]
    }
  110. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/hubspot_rate_limited/runs · hubspot rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/hubspot_rate_limited/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:11.842325+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  111. · POST app request /invocations · hubspot rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "hubspot-rate-limited-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_hubspot_rate_limited",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "hubspot_rate_limited"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:17.746596+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "560",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "hubspot-rate-limited-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_hubspot_rate_limited",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "hubspot_rate_limited"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "hubspot-rate-limited-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "WAITING",
      "closed": false,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "hubspot_rate_limited"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "crm",
          "status": "failed",
          "error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS",
          "errorCode": "hubspot:RATE_LIMITS",
          "durationMs": 4523
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-hubspot-rate-limited%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 135
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 164
        }
      ],
      "actions": [
        {
          "id": "stripe.consent:cus_0NU6LECVXT20WO99",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_hubspot_rate_limited",
            "customer": "cus_0NU6LECVXT20WO99",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_0NU6LECVXT20WO99",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:17.052Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_hubspot_rate_limited",
            "missing": [
              "HubSpot contacts",
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "171UMZMTS9.OJRSUJ",
          "appliedAt": "2026-10-22T19:16:17.232Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "scheduled",
          "summary": {
            "eventId": "evt_hubspot_rate_limited",
            "afterMinutes": 15,
            "systems": 1
          },
          "attempts": 0,
          "waitUntil": "2026-10-22T19:31:17.052Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 1,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": "2026-10-22T19:31:17.052Z",
      "audit": {
        "seq": 6,
        "head": "01bf4e52ba51e7f61375aef00b50dc456b601373c8c1bcd673317b6e3202ba20"
      },
      "output": {
        "mode": "partial",
        "contact": null,
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:16:11.941Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:16:16.466Z",
          "msg": "agents: crm=failed, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:16:16.469Z",
          "msg": "planned 3 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:17.053Z",
          "msg": "stripe.consent:cus_0NU6LECVXT20WO99: applied"
        },
        {
          "at": "2026-10-22T19:16:17.232Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:17.237Z",
          "msg": "consent.verify: scheduled"
        },
        {
          "at": "2026-10-22T19:16:17.239Z",
          "msg": "waiting until 2026-10-22T19:31:17.052Z"
        }
      ],
      "createdAt": "2026-10-22T19:16:11.941Z",
      "updatedAt": "2026-10-22T19:16:17.239Z",
      "duplicate": false
    }
  112. · GET hubspot request · hubspot rate limited · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · processing 0.15ms
    View sanitized request and response

    Curl-style request view

    curl --request GET '<HUBSPOT_TWIN_BASE_URL>/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL was not recorded. Provider processing: 0.15ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  113. · GET hubspot request · provider traffic · /communication-preferences/v3/status/email/[email protected] · HTTP 404 · request cf30dab74b23 · processing 0.15ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/6d12a62768/communication-preferences/v3/status/email/[email protected]' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.15ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 404

    {
      "errors": [
        {
          "status": "404",
          "code": "EGeneral:Unknown method",
          "detail": "No route matches GET /communication-preferences/v3/status/email/[email protected]"
        }
      ]
    }
  114. · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 13715d981066 · processing 15.98ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 15.98ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "data": [
        {
          "email": "[email protected]",
          "name": "Subject 0",
          "id": "cus_0NU6LECVXT20WO99",
          "address": null,
          "balance": 0,
          "business_name": "Sample Business",
          "cash_balance": null,
          "created": 49,
          "currency": "USD",
          "customer_account": null,
          "default_source": null,
          "delinquent": false,
          "description": null,
          "discount": null,
          "individual_name": "Sample Individual",
          "invoice_prefix": null,
          "livemode": false,
          "object": "customer",
          "phone": "+14155550100",
          "preferred_locales": null,
          "shipping": null,
          "tax_exempt": "exempt",
          "test_clock": null
        }
      ],
      "has_more": false,
      "object": "list",
      "url": "/v1/customers"
    }
  115. · POST hubspot request · hubspot rate limited · /crm/v3/objects/contacts/search · HTTP 429 · processing 0.3ms
    View sanitized request and response

    Curl-style request view

    curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL was not recorded. Provider processing: 0.3ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "414",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    {
      "retry-after": "2"
    }

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 429

    {
      "errors": [
        {
          "status": "429",
          "code": "RATE_LIMITS",
          "detail": "You have reached your secondly limit."
        }
      ]
    }
  116. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 429 · request 4986d0a99120 · processing 0.3ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.3ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "414",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    {
      "retry-after": "2"
    }

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 429

    {
      "errors": [
        {
          "status": "429",
          "code": "RATE_LIMITS",
          "detail": "You have reached your secondly limit."
        }
      ]
    }
  117. · POST hubspot request · hubspot rate limited · /crm/v3/objects/contacts/search · HTTP 429 · processing 0.32ms
    View sanitized request and response

    Curl-style request view

    curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL was not recorded. Provider processing: 0.32ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "414",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    {
      "retry-after": "2"
    }

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 429

    {
      "errors": [
        {
          "status": "429",
          "code": "RATE_LIMITS",
          "detail": "You have reached your secondly limit."
        }
      ]
    }
  118. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 429 · request 182eb6c3e343 · processing 0.32ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.32ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "414",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    {
      "retry-after": "2"
    }

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 429

    {
      "errors": [
        {
          "status": "429",
          "code": "RATE_LIMITS",
          "detail": "You have reached your secondly limit."
        }
      ]
    }
  119. · POST hubspot request · hubspot rate limited · /crm/v3/objects/contacts/search · HTTP 429 · processing 0.33ms
    View sanitized request and response

    Curl-style request view

    curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL was not recorded. Provider processing: 0.33ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "414",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    {
      "retry-after": "2"
    }

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 429

    {
      "errors": [
        {
          "status": "429",
          "code": "RATE_LIMITS",
          "detail": "You have reached your secondly limit."
        }
      ]
    }
  120. · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 429 · request f7c7868ecfb1 · processing 0.33ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/6d12a62768/crm/v3/objects/contacts/search' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 0.33ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "414",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    {
      "retry-after": "2"
    }

    Request body

    {
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "email",
              "operator": "EQ",
              "value": "[email protected]"
            }
          ]
        }
      ],
      "properties": [
        "email",
        "firstname",
        "lastname",
        "company",
        "lifecyclestage",
        "hs_lead_status",
        "hubspot_owner_id",
        "hs_email_domain",
        "country",
        "numberofemployees",
        "notes_last_contacted",
        "createdate",
        "acme_consent_marketing_email",
        "acme_consent_sale_or_share",
        "acme_consent_profiling"
      ],
      "limit": 10
    }

    Recorded response · HTTP 429

    {
      "errors": [
        {
          "status": "429",
          "code": "RATE_LIMITS",
          "detail": "You have reached your secondly limit."
        }
      ]
    }
  121. · GET stripe request · provider traffic · /v1/customers/cus_0NU6LECVXT20WO99 · HTTP 200 · request b4dc47b3e265 · processing 15.75ms
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_0NU6LECVXT20WO99' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 15.75ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    No body shown for this read.

    Recorded response · HTTP 200

    {
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 49,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "email": "[email protected]",
      "id": "cus_0NU6LECVXT20WO99",
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "name": "Subject 0",
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null
    }
  122. · POST stripe request · provider traffic · /v1/customers/cus_0NU6LECVXT20WO99 · HTTP 200 · request 6ab09bd3eeec · processing 16.28ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/a164f289d9/v1/customers/cus_0NU6LECVXT20WO99' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data-raw '{
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_hubspot_rate_limited"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 16.28ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "228",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/x-www-form-urlencoded"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_hubspot_rate_limited"
      }
    }

    Recorded response · HTTP 200

    {
      "email": "[email protected]",
      "name": "Subject 0",
      "id": "cus_0NU6LECVXT20WO99",
      "address": null,
      "balance": 0,
      "business_name": "Sample Business",
      "cash_balance": null,
      "created": 49,
      "currency": "USD",
      "customer_account": null,
      "default_source": null,
      "delinquent": false,
      "description": null,
      "discount": null,
      "individual_name": "Sample Individual",
      "invoice_prefix": null,
      "livemode": false,
      "object": "customer",
      "phone": "+14155550100",
      "preferred_locales": null,
      "shipping": null,
      "tax_exempt": "exempt",
      "test_clock": null,
      "metadata": {
        "acme_consent_marketing_email": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_sale_or_share": "withdrawn@2026-10-22T19:14:44.954Z",
        "acme_consent_last_event": "evt_hubspot_rate_limited"
      }
    }
  123. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 8a273851a7d7 · processing 14.3ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/f8019fb4b7/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_hubspot_rate_limited (subject 58eece8d9f) could not be applied in HubSpot contacts and HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL resolved from the saved run route. Provider processing: 14.3ms.

    Recorded request headers

    {
      "host": "fetchsandbox.com",
      "content-length": "261",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0PRIVACY01",
      "text": ":warning: Consent evt_hubspot_rate_limited (subject 58eece8d9f) could not be applied in HubSpot contacts and HubSpot email subscriptions; it will be retried when this run is re-driven.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0PRIVACY01",
      "message": {
        "bot_id": "bot_083b21e48da84ac7b3730099d2",
        "client_msg_id": "cli_0992db021c594f7881f3193e78",
        "name": "item-619bb5",
        "old_name": "Sample Old",
        "parent_user_id": "par_82fdbb0c9990446fa795e09459",
        "permalink": "my-resource",
        "reply_count": 0,
        "reply_users_count": 0,
        "text": "Sample text content",
        "ts": "sample-value",
        "type": "default",
        "unread_count": 0,
        "username": "acme-corp"
      },
      "ok": true,
      "ts": "171UMZMTS9.OJRSUJ"
    }
  124. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/hubspot_rate_limited/runs · hubspot rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/hubspot_rate_limited/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:18.122373+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "hubspot-rate-limited-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "WAITING",
          "closed": false,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "hubspot_rate_limited"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "crm",
              "status": "failed",
              "error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS",
              "errorCode": "hubspot:RATE_LIMITS",
              "durationMs": 4523
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-hubspot-rate-limited%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 135
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 164
            }
          ],
          "actions": [
            {
              "id": "stripe.consent:cus_0NU6LECVXT20WO99",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_hubspot_rate_limited",
                "customer": "cus_0NU6LECVXT20WO99",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_0NU6LECVXT20WO99",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:17.052Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_hubspot_rate_limited",
                "missing": [
                  "HubSpot contacts",
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "171UMZMTS9.OJRSUJ",
              "appliedAt": "2026-10-22T19:16:17.232Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "scheduled",
              "summary": {
                "eventId": "evt_hubspot_rate_limited",
                "afterMinutes": 15,
                "systems": 1
              },
              "attempts": 0,
              "waitUntil": "2026-10-22T19:31:17.052Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 1,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": "2026-10-22T19:31:17.052Z",
          "audit": {
            "seq": 6,
            "head": "01bf4e52ba51e7f61375aef00b50dc456b601373c8c1bcd673317b6e3202ba20"
          },
          "output": {
            "mode": "partial",
            "contact": null,
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:16:11.941Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:16:16.466Z",
              "msg": "agents: crm=failed, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:16:16.469Z",
              "msg": "planned 3 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:17.053Z",
              "msg": "stripe.consent:cus_0NU6LECVXT20WO99: applied"
            },
            {
              "at": "2026-10-22T19:16:17.232Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:17.237Z",
              "msg": "consent.verify: scheduled"
            },
            {
              "at": "2026-10-22T19:16:17.239Z",
              "msg": "waiting until 2026-10-22T19:31:17.052Z"
            }
          ],
          "createdAt": "2026-10-22T19:16:11.941Z",
          "updatedAt": "2026-10-22T19:16:17.239Z"
        }
      ]
    }
  125. · POST app request /invocations · hubspot rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "hubspot-rate-limited-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_hubspot_rate_limited",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "hubspot_rate_limited"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:18.391903+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "560",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    {
      "action": "start",
      "runId": "hubspot-rate-limited-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_hubspot_rate_limited",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "marketing_email",
            "state": "withdrawn"
          },
          {
            "purpose": "sale_or_share",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "hubspot_rate_limited"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "hubspot-rate-limited-vr_d6428dde89434b3096ac24e1ffe115a0",
      "workflow": "consent-propagation",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Marketing",
      "team": "marketing-ops",
      "phase": "WAITING",
      "closed": false,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "hubspot_rate_limited"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "crm",
          "status": "failed",
          "error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS",
          "errorCode": "hubspot:RATE_LIMITS",
          "durationMs": 4523
        },
        {
          "name": "subscriptions",
          "status": "failed",
          "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-hubspot-rate-limited%40pref.example → 404 EGeneral:Unknown method",
          "errorCode": "hubspot:EGeneral:Unknown method",
          "durationMs": 135
        },
        {
          "name": "billing",
          "status": "ok",
          "summary": "1 Stripe customer(s)",
          "durationMs": 164
        }
      ],
      "actions": [
        {
          "id": "stripe.consent:cus_0NU6LECVXT20WO99",
          "kind": "stripe.consent",
          "provider": "stripe",
          "agent": "billing",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_hubspot_rate_limited",
            "customer": "cus_0NU6LECVXT20WO99",
            "changes": [
              {
                "purpose": "marketing_email",
                "state": "withdrawn"
              },
              {
                "purpose": "sale_or_share",
                "state": "withdrawn"
              }
            ]
          },
          "attempts": 1,
          "ref": "cus_0NU6LECVXT20WO99",
          "detail": {
            "wrote": [
              "acme_consent_marketing_email",
              "acme_consent_sale_or_share"
            ],
            "stale": []
          },
          "appliedAt": "2026-10-22T19:16:17.052Z",
          "reconciled": null
        },
        {
          "id": "slack.post_consent",
          "kind": "slack.post_consent",
          "provider": "slack",
          "agent": "crm",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "eventId": "evt_hubspot_rate_limited",
            "missing": [
              "HubSpot contacts",
              "HubSpot email subscriptions"
            ]
          },
          "attempts": 1,
          "ref": "171UMZMTS9.OJRSUJ",
          "appliedAt": "2026-10-22T19:16:17.232Z",
          "reconciled": null
        },
        {
          "id": "consent.verify",
          "kind": "consent.verify",
          "provider": "hubspot",
          "agent": "crm",
          "gate": "auto",
          "status": "scheduled",
          "summary": {
            "eventId": "evt_hubspot_rate_limited",
            "afterMinutes": 15,
            "systems": 1
          },
          "attempts": 0,
          "waitUntil": "2026-10-22T19:31:17.052Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 1,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": "2026-10-22T19:31:17.052Z",
      "audit": {
        "seq": 7,
        "head": "2446374c2c81aeeb6bcbaefdbdeb7ef14140f2fe4f2dc33475e177ee8a61e67f"
      },
      "output": {
        "mode": "partial",
        "contact": null,
        "customers": 1,
        "purposes": [
          "marketing_email=withdrawn",
          "sale_or_share=withdrawn"
        ]
      },
      "events": [
        {
          "at": "2026-10-22T19:16:11.941Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:16:16.466Z",
          "msg": "agents: crm=failed, subscriptions=failed, billing=ok"
        },
        {
          "at": "2026-10-22T19:16:16.469Z",
          "msg": "planned 3 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:16:17.053Z",
          "msg": "stripe.consent:cus_0NU6LECVXT20WO99: applied"
        },
        {
          "at": "2026-10-22T19:16:17.232Z",
          "msg": "slack.post_consent: applied"
        },
        {
          "at": "2026-10-22T19:16:17.237Z",
          "msg": "consent.verify: scheduled"
        },
        {
          "at": "2026-10-22T19:16:17.239Z",
          "msg": "waiting until 2026-10-22T19:31:17.052Z"
        },
        {
          "at": "2026-10-22T19:16:18.238Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:16:11.941Z",
      "updatedAt": "2026-10-22T19:16:18.238Z",
      "duplicate": true
    }
  126. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/hubspot_rate_limited/runs · hubspot rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/hubspot_rate_limited/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:18.740217+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": [
        {
          "runId": "hubspot-rate-limited-vr_d6428dde89434b3096ac24e1ffe115a0",
          "workflow": "consent-propagation",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Marketing",
          "team": "marketing-ops",
          "phase": "WAITING",
          "closed": false,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
            "fs_case": "hubspot_rate_limited"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "crm",
              "status": "failed",
              "error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS",
              "errorCode": "hubspot:RATE_LIMITS",
              "durationMs": 4523
            },
            {
              "name": "subscriptions",
              "status": "failed",
              "error": "hubspot 404 EGeneral:Unknown method: GET /communication-preferences/v3/status/email/consent-hubspot-rate-limited%40pref.example → 404 EGeneral:Unknown method",
              "errorCode": "hubspot:EGeneral:Unknown method",
              "durationMs": 135
            },
            {
              "name": "billing",
              "status": "ok",
              "summary": "1 Stripe customer(s)",
              "durationMs": 164
            }
          ],
          "actions": [
            {
              "id": "stripe.consent:cus_0NU6LECVXT20WO99",
              "kind": "stripe.consent",
              "provider": "stripe",
              "agent": "billing",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_hubspot_rate_limited",
                "customer": "cus_0NU6LECVXT20WO99",
                "changes": [
                  {
                    "purpose": "marketing_email",
                    "state": "withdrawn"
                  },
                  {
                    "purpose": "sale_or_share",
                    "state": "withdrawn"
                  }
                ]
              },
              "attempts": 1,
              "ref": "cus_0NU6LECVXT20WO99",
              "detail": {
                "wrote": [
                  "acme_consent_marketing_email",
                  "acme_consent_sale_or_share"
                ],
                "stale": []
              },
              "appliedAt": "2026-10-22T19:16:17.052Z",
              "reconciled": null
            },
            {
              "id": "slack.post_consent",
              "kind": "slack.post_consent",
              "provider": "slack",
              "agent": "crm",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "eventId": "evt_hubspot_rate_limited",
                "missing": [
                  "HubSpot contacts",
                  "HubSpot email subscriptions"
                ]
              },
              "attempts": 1,
              "ref": "171UMZMTS9.OJRSUJ",
              "appliedAt": "2026-10-22T19:16:17.232Z",
              "reconciled": null
            },
            {
              "id": "consent.verify",
              "kind": "consent.verify",
              "provider": "hubspot",
              "agent": "crm",
              "gate": "auto",
              "status": "scheduled",
              "summary": {
                "eventId": "evt_hubspot_rate_limited",
                "afterMinutes": 15,
                "systems": 1
              },
              "attempts": 0,
              "waitUntil": "2026-10-22T19:31:17.052Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 1,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": "2026-10-22T19:31:17.052Z",
          "audit": {
            "seq": 7,
            "head": "2446374c2c81aeeb6bcbaefdbdeb7ef14140f2fe4f2dc33475e177ee8a61e67f"
          },
          "output": {
            "mode": "partial",
            "contact": null,
            "customers": 1,
            "purposes": [
              "marketing_email=withdrawn",
              "sale_or_share=withdrawn"
            ]
          },
          "events": [
            {
              "at": "2026-10-22T19:16:11.941Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:16:16.466Z",
              "msg": "agents: crm=failed, subscriptions=failed, billing=ok"
            },
            {
              "at": "2026-10-22T19:16:16.469Z",
              "msg": "planned 3 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:16:17.053Z",
              "msg": "stripe.consent:cus_0NU6LECVXT20WO99: applied"
            },
            {
              "at": "2026-10-22T19:16:17.232Z",
              "msg": "slack.post_consent: applied"
            },
            {
              "at": "2026-10-22T19:16:17.237Z",
              "msg": "consent.verify: scheduled"
            },
            {
              "at": "2026-10-22T19:16:17.239Z",
              "msg": "waiting until 2026-10-22T19:31:17.052Z"
            },
            {
              "at": "2026-10-22T19:16:18.238Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:16:11.941Z",
          "updatedAt": "2026-10-22T19:16:18.238Z"
        }
      ]
    }
  127. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/invalid_input_rejected/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:19.014913+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  128. · POST app request /invocations · invalid input rejected · HTTP 400
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "invalid-input-rejected-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "everything",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "invalid_input_rejected"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:19.267858+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "487",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "141"
    }

    Request body

    {
      "action": "start",
      "runId": "invalid-input-rejected-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "everything",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "invalid_input_rejected"
      }
    }

    Recorded response · HTTP 400

    {
      "error": "invalid input",
      "issues": [
        "changes.0.purpose: Invalid option: expected one of \"marketing_email\"|\"sale_or_share\"|\"profiling\""
      ]
    }
  129. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/invalid_input_rejected/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:19.649041+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }
  130. · POST app request /invocations · invalid input rejected · HTTP 400
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "invalid-input-rejected-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "everything",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "invalid_input_rejected"
      }
    }'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:19.899380+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]",
      "content-length": "487",
      "content-type": "application/json"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "141"
    }

    Request body

    {
      "action": "start",
      "runId": "invalid-input-rejected-vr_d6428dde89434b3096ac24e1ffe115a0",
      "input": {
        "eventId": "evt_baseline",
        "email": "[email protected]",
        "occurredAt": "2026-10-22T19:14:44.954Z",
        "source": "preference_center",
        "changes": [
          {
            "purpose": "everything",
            "state": "withdrawn"
          }
        ],
        "marketingSubscriptionId": "4242",
        "privacyChannel": "C0PRIVACY01"
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_d6428dde89434b3096ac24e1ffe115a0",
        "fs_case": "invalid_input_rejected"
      }
    }

    Recorded response · HTTP 400

    {
      "error": "invalid input",
      "issues": [
        "changes.0.purpose: Invalid option: expected one of \"marketing_email\"|\"sale_or_share\"|\"profiling\""
      ]
    }
  131. · GET app request /verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/ee2a4ab183ef32b8bff3e21ed18f4a92367e33fdbe0469a8/verify/runs/vr_d6428dde89434b3096ac24e1ffe115a0/cases/invalid_input_rejected/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_d6428dde89434b3096ac24e1ffe115a0' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]'

    This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.

    Target URL recorded at execution. Response finished: 2026-10-22T19:16:20.269399+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_d6428dde89434b3096ac24e1ffe115a0",
      "x-fetchsandbox-relay": "[redacted]",
      "authorization": "[redacted]"
    }

    Recorded response headers

    {
      "content-type": "application/json",
      "content-length": "11"
    }

    Request body

    This request had no body.

    Recorded response · HTTP 200

    {
      "runs": []
    }

Expand a request to inspect its sanitized payload. Credentials and personal data stay hidden.

Timestamps reflect when the sandbox recorded each request, not the order your app triggered them.

  • Verification covers the declared HTTP actions and state reads in this run.
  • The app version shown was supplied by the app itself, not independently checked.
  • Passing all checks in this run does not certify the whole app as production-ready.
  • The verifier session does not survive a restart. This says nothing about the durability of the app under test.
  • App state shown here is what the app's own endpoint reported. It is not independently checked against the database.

Sanitized summary. Expand a timeline event to inspect the safe request and response fields; sensitive provider and application data stays hidden.