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 / 13

Failing

4Passed5Failed4Not 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 bank-change request is recorded for AP and posted

baseline
Passed

What we probed

A bank-change request is recorded for AP and posted

How we probed it

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

  1. POST /invocations

Expected vs actual

Expected
A bank-change request is recorded for AP and posted
Actual
expected exactly 1, found 1; stable under 2 repeats (1)

Requests and responses

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

GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]"
}
{
  "content-type": "application/json",
  "content-length": "11"
}
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
  --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_1d352154f9af49b5b8738b1d015ff7e8",
  "input": {
    "changeId": "BC-baseline",
    "vendorId": "731",
    "submittedBy": "U_AP_CLERK",
    "source": "email",
    "requestEmail": "[email protected]",
    "newBank": {
      "accountName": "Northwind Traders LLC",
      "last4": "9012",
      "vaultToken": "[redacted]",
      "plaidAccessToken": "[redacted]"
    },
    "verifiers": [
      "U_AP_CLERK",
      "U_AP_VERIFIER"
    ],
    "apChannel": "C0FINANCE01",
    "securityChannel": "C0SECURITY1",
    "approvers": [
      "U_TREASURY",
      "U_AP_VERIFIER"
    ]
  },
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
    "fs_case": "baseline"
  }
}
Server returned

HTTP 200

{
  "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
  "workflow": "supplier-bank-change",
  "metadata": {
    "organization": "Acme",
    "company": "Acme Corporation",
    "environment": "unconfigured",
    "owner": "unassigned",
    "department": "unassigned",
    "ownerTeam": "unassigned",
    "oncall": "unassigned",
    "version": "unversioned",
    "sourceCommit": "unrecorded"
  },
  "org": "Finance",
  "team": "accounts-payable",
  "phase": "DONE",
  "closed": true,
  "outcome": "ok",
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
    "fs_case": "baseline"
  },
  "duplicateStarts": 0,
  "agents": [
    {
      "name": "vendor-record",
      "status": "skipped",
      "error": "not configured: netsuite",
      "errorCode": "not_configured",
      "durationMs": 0
    },
    {
      "name": "bank-ownership",
      "status": "skipped",
      "error": "not configured: netsuite",
      "errorCode": "not_configured",
      "durationMs": 0
    },
    {
      "name": "sanctions",
      "status": "skipped",
      "error": "not configured: screening, netsuite",
      "errorCode": "not_configured",
      "durationMs": 0
    },
    {
      "name": "assessment",
      "status": "ok",
      "summary": "blocked (high): vendor record could not be read",
      "durationMs": 0
    }
  ],
  "actions": [
    {
      "id": "asana.change_record",
      "kind": "asana.change_record",
      "provider": "asana",
      "agent": "assessment",
      "gate": "auto",
      "status": "applied",
      "summary": {
        "change": "BC-baseline",
        "mode": "blocked"
      },
      "attempts": 1,
      "ref": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1",
      "appliedAt": "2026-10-22T19:12:46.457Z",
      "reconciled": null
    },
    {
      "id": "slack.post_change",
      "kind": "slack.post_change",
      "provider": "slack",
      "agent": "assessment",
      "gate": "auto",
      "status": "applied",
      "summary": {
        "channel": "C0SECURITY1",
        "mode": "blocked"
      },
      "attempts": 1,
      "ref": "17NT4REOV0.1YZ4ID",
      "appliedAt": "2026-10-22T19:12:46.743Z",
      "reconciled": null
    }
  ],
  "counts": {
    "applied": 2,
    "failed": 0,
    "pendingApproval": 0,
    "skipped": 0,
    "rejected": 0,
    "scheduled": 0,
    "awaitingSignal": 0,
    "compensated": 0
  },
  "wakeAt": null,
  "audit": {
    "seq": 5,
    "head": "f785a2055fc3ea7c32aa8447d9c75bb44ecdd774dc7afc9115edcd198b779c00"
  },
  "output": {
    "mode": "blocked",
    "risk": "high",
    "reason": "vendor record could not be read",
    "flags": []
  },
  "events": [
    {
      "at": "2026-10-22T19:12:45.864Z",
      "msg": "started by U_FETCHSANDBOX"
    },
    {
      "at": "2026-10-22T19:12:45.870Z",
      "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
    },
    {
      "at": "2026-10-22T19:12:45.879Z",
      "msg": "planned 2 action(s): 0 need approval"
    },
    {
      "at": "2026-10-22T19:12:46.457Z",
      "msg": "asana.change_record: applied"
    },
    {
      "at": "2026-10-22T19:12:46.744Z",
      "msg": "slack.post_change: applied"
    },
    {
      "at": "2026-10-22T19:12:46.746Z",
      "msg": "done (ok)"
    }
  ],
  "createdAt": "2026-10-22T19:12:45.864Z",
  "updatedAt": "2026-10-22T19:12:46.746Z",
  "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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]",
  "content-length": "617",
  "content-type": "application/json"
}
{
  "content-type": "application/json"
}
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
  --header 'x-fetchsandbox-relay: [redacted]' \
  --header 'authorization: [redacted]' \
  --header 'content-type: application/json' \
  --data-raw '{
  "action": "start",
  "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
  "input": {
    "changeId": "BC-baseline",
    "vendorId": "731",
    "submittedBy": "U_AP_CLERK",
    "source": "email",
    "requestEmail": "[email protected]",
    "newBank": {
      "accountName": "Northwind Traders LLC",
      "last4": "9012",
      "vaultToken": "[redacted]",
      "plaidAccessToken": "[redacted]"
    },
    "verifiers": [
      "U_AP_CLERK",
      "U_AP_VERIFIER"
    ],
    "apChannel": "C0FINANCE01",
    "securityChannel": "C0SECURITY1",
    "approvers": [
      "U_TREASURY",
      "U_AP_VERIFIER"
    ]
  },
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
    "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_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs200
We sent

GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs

This request had no body.

Server returned

HTTP 200

{
  "runs": [
    {
      "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "baseline"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-baseline",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1",
          "appliedAt": "2026-10-22T19:12:46.457Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17NT4REOV0.1YZ4ID",
          "appliedAt": "2026-10-22T19:12:46.743Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "f785a2055fc3ea7c32aa8447d9c75bb44ecdd774dc7afc9115edcd198b779c00"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:45.864Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:45.870Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:45.879Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:46.457Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:46.744Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:46.746Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:45.864Z",
      "updatedAt": "2026-10-22T19:12:46.746Z"
    }
  ]
}

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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]"
}
{
  "content-type": "application/json"
}
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
  --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_1d352154f9af49b5b8738b1d015ff7e8",
  "input": {
    "changeId": "BC-baseline",
    "vendorId": "731",
    "submittedBy": "U_AP_CLERK",
    "source": "email",
    "requestEmail": "[email protected]",
    "newBank": {
      "accountName": "Northwind Traders LLC",
      "last4": "9012",
      "vaultToken": "[redacted]",
      "plaidAccessToken": "[redacted]"
    },
    "verifiers": [
      "U_AP_CLERK",
      "U_AP_VERIFIER"
    ],
    "apChannel": "C0FINANCE01",
    "securityChannel": "C0SECURITY1",
    "approvers": [
      "U_TREASURY",
      "U_AP_VERIFIER"
    ]
  },
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
    "fs_case": "baseline"
  }
}
Server returned

HTTP 200

{
  "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
  "workflow": "supplier-bank-change",
  "metadata": {
    "organization": "Acme",
    "company": "Acme Corporation",
    "environment": "unconfigured",
    "owner": "unassigned",
    "department": "unassigned",
    "ownerTeam": "unassigned",
    "oncall": "unassigned",
    "version": "unversioned",
    "sourceCommit": "unrecorded"
  },
  "org": "Finance",
  "team": "accounts-payable",
  "phase": "DONE",
  "closed": true,
  "outcome": "ok",
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
    "fs_case": "baseline"
  },
  "duplicateStarts": 1,
  "agents": [
    {
      "name": "vendor-record",
      "status": "skipped",
      "error": "not configured: netsuite",
      "errorCode": "not_configured",
      "durationMs": 0
    },
    {
      "name": "bank-ownership",
      "status": "skipped",
      "error": "not configured: netsuite",
      "errorCode": "not_configured",
      "durationMs": 0
    },
    {
      "name": "sanctions",
      "status": "skipped",
      "error": "not configured: screening, netsuite",
      "errorCode": "not_configured",
      "durationMs": 0
    },
    {
      "name": "assessment",
      "status": "ok",
      "summary": "blocked (high): vendor record could not be read",
      "durationMs": 0
    }
  ],
  "actions": [
    {
      "id": "asana.change_record",
      "kind": "asana.change_record",
      "provider": "asana",
      "agent": "assessment",
      "gate": "auto",
      "status": "applied",
      "summary": {
        "change": "BC-baseline",
        "mode": "blocked"
      },
      "attempts": 1,
      "ref": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1",
      "appliedAt": "2026-10-22T19:12:46.457Z",
      "reconciled": null
    },
    {
      "id": "slack.post_change",
      "kind": "slack.post_change",
      "provider": "slack",
      "agent": "assessment",
      "gate": "auto",
      "status": "applied",
      "summary": {
        "channel": "C0SECURITY1",
        "mode": "blocked"
      },
      "attempts": 1,
      "ref": "17NT4REOV0.1YZ4ID",
      "appliedAt": "2026-10-22T19:12:46.743Z",
      "reconciled": null
    }
  ],
  "counts": {
    "applied": 2,
    "failed": 0,
    "pendingApproval": 0,
    "skipped": 0,
    "rejected": 0,
    "scheduled": 0,
    "awaitingSignal": 0,
    "compensated": 0
  },
  "wakeAt": null,
  "audit": {
    "seq": 6,
    "head": "eaa1a20504e4e0907722b50692200a79d218bb26863e216a7e1c25c025bbb1cf"
  },
  "output": {
    "mode": "blocked",
    "risk": "high",
    "reason": "vendor record could not be read",
    "flags": []
  },
  "events": [
    {
      "at": "2026-10-22T19:12:45.864Z",
      "msg": "started by U_FETCHSANDBOX"
    },
    {
      "at": "2026-10-22T19:12:45.870Z",
      "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
    },
    {
      "at": "2026-10-22T19:12:45.879Z",
      "msg": "planned 2 action(s): 0 need approval"
    },
    {
      "at": "2026-10-22T19:12:46.457Z",
      "msg": "asana.change_record: applied"
    },
    {
      "at": "2026-10-22T19:12:46.744Z",
      "msg": "slack.post_change: applied"
    },
    {
      "at": "2026-10-22T19:12:46.746Z",
      "msg": "done (ok)"
    },
    {
      "at": "2026-10-22T19:12:47.344Z",
      "msg": "duplicate start ignored"
    }
  ],
  "createdAt": "2026-10-22T19:12:45.864Z",
  "updatedAt": "2026-10-22T19:12:47.344Z",
  "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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]",
  "content-length": "617",
  "content-type": "application/json"
}
{
  "content-type": "application/json"
}
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
  --header 'x-fetchsandbox-relay: [redacted]' \
  --header 'authorization: [redacted]' \
  --header 'content-type: application/json' \
  --data-raw '{
  "action": "start",
  "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
  "input": {
    "changeId": "BC-baseline",
    "vendorId": "731",
    "submittedBy": "U_AP_CLERK",
    "source": "email",
    "requestEmail": "[email protected]",
    "newBank": {
      "accountName": "Northwind Traders LLC",
      "last4": "9012",
      "vaultToken": "[redacted]",
      "plaidAccessToken": "[redacted]"
    },
    "verifiers": [
      "U_AP_CLERK",
      "U_AP_VERIFIER"
    ],
    "apChannel": "C0FINANCE01",
    "securityChannel": "C0SECURITY1",
    "approvers": [
      "U_TREASURY",
      "U_AP_VERIFIER"
    ]
  },
  "requestedBy": {
    "userId": "U_FETCHSANDBOX"
  },
  "labels": {
    "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
    "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_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs200
We sent

GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs

This request had no body.

Server returned

HTTP 200

{
  "runs": [
    {
      "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "baseline"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-baseline",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1",
          "appliedAt": "2026-10-22T19:12:46.457Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17NT4REOV0.1YZ4ID",
          "appliedAt": "2026-10-22T19:12:46.743Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "eaa1a20504e4e0907722b50692200a79d218bb26863e216a7e1c25c025bbb1cf"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:45.864Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:45.870Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:45.879Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:46.457Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:46.744Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:46.746Z",
          "msg": "done (ok)"
        },
        {
          "at": "2026-10-22T19:12:47.344Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:12:45.864Z",
      "updatedAt": "2026-10-22T19:12:47.344Z"
    }
  ]
}

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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs

{
  "accept": "*/*",
  "user-agent": "python-httpx/0.28.1",
  "host": "fetchsandbox.com",
  "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
  "x-fetchsandbox-relay": "[redacted]",
  "authorization": "[redacted]"
}
{
  "content-type": "application/json"
}
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs' \
  --header 'accept: */*' \
  --header 'user-agent: python-httpx/0.28.1' \
  --header 'host: fetchsandbox.com' \
  --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
  --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_1d352154f9af49b5b8738b1d015ff7e8
App version (declared)
acme-ops-supplier-bank-chang…
Source receipt
Source receipt ↗
Technical referencebaseline

App version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c

A bank-change request is recorded for AP and posted

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 (2)

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.

asana · POST /tasks · HTTP 201
We sent

POST /tasks

{
  "data": {
    "name": "BC-baseline: supplier bank change (blocked)",
    "notes": "Bank change BC-baseline for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
    "workspace": "acme-ap"
  }
}
Server returned

HTTP 201

{
  "data": {
    "name": "BC-baseline: supplier bank change (blocked)",
    "notes": "Bank change BC-baseline for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
    "workspace": "acme-ap"
  },
  "id": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1"
}

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/153a982350/tasks

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

Response headers were not saved in this run.

Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
  --header 'content-type: application/json; charset=utf-8' \
  --data-raw '{
  "data": {
    "name": "BC-baseline: supplier bank change (blocked)",
    "notes": "Bank change BC-baseline for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
    "workspace": "acme-ap"
  }
}'

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": "C0SECURITY1",
  "text": ":rotating_light: Bank change BC-baseline for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
  "unfurl_links": false,
  "unfurl_media": false
}
Server returned

HTTP 200

{
  "channel": "C0SECURITY1",
  "message": {
    "bot_id": "bot_e6a64aec60544dd4abadd57100",
    "client_msg_id": "cli_5a4d7f82d59b470cbbcd07918c",
    "name": "item-72152a",
    "old_name": "Sample Old",
    "parent_user_id": "par_2be3136d36c4494fb72aef72c2",
    "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": "17NT4REOV0.1YZ4ID"
}

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/459cdd11ad/api/chat.postMessage

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

Response headers were not saved in this run.

Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
  --header 'host: fetchsandbox.com' \
  --header 'user-agent: node' \
  --header 'accept: application/json' \
  --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
  --header 'content-type: application/json; charset=utf-8' \
  --data-raw '{
  "channel": "C0SECURITY1",
  "text": ":rotating_light: Bank change BC-baseline for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
  "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.

Run details

Run vr_1d352154f9af49b5b8738b1d015ff7e8

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

4 passed · 5 failed · 4 not checked

Coverage beyond the declared checks

Passing these checks does not establish every production behavior.

  • Normal successful behavior · Linked checks passed · baseline
  • The right user gets the right access · Not checked · submitter_cannot_confirm, verifier_cannot_also_approve
  • Valid data and boundary values · Linked checks passed · invalid_input_rejected
  • Correct amount, currency and quantity · Proposed as not applicable
  • Duplicate requests and events · Proposed as not applicable
  • Requests arriving together · Proposed as not applicable
  • Out-of-order and stale events · Linked check failed · callback_deadline_rejects
  • Delayed or missing events · Linked check failed · callback_deadline_rejects
  • Provider authentication and permissions · Linked checks passed · unreadable_vendor_blocks
  • Rate limits, server failures and timeouts · Linked checks passed · slack_rate_limited
  • Completed action with a lost response · Proposed as not applicable
  • Partial completion and recovery · Not checked · treasury_rejection_keeps_old_account
  • Restart without losing or duplicating work · Proposed as not applicable
  • Finding and repairing inconsistent state · Proposed as not applicable
  • Cancellation, refunds and access · Not checked · two_person_rule_applies_change, treasury_rejection_keeps_old_account
  • Data ownership and privacy · Linked check failed · ownership_checked_with_plaid, sanctions_screened
  • 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-supplier-bank-change-1.0.0-93f319c (declared)

Measured run: 2026-10-22T19:12:45.449064+00:00 – 2026-10-22T19:13:16.613162+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: 76/88 successful · checkpoints: 9/13 recorded

Why checks are unmeasured

  • submitter_cannot_confirm: app action expected HTTP 403, received 404
  • verifier_cannot_also_approve: app action expected HTTP 200, received 404
  • two_person_rule_applies_change: app action expected HTTP 200, received 404
  • treasury_rejection_keeps_old_account: app action expected HTTP 200, received 404
Sanitized request and event timeline (88 events)
  1. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:45.737378+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-baseline",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "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:12:46.879297+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-baseline",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "baseline"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "baseline"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-baseline",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1",
          "appliedAt": "2026-10-22T19:12:46.457Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17NT4REOV0.1YZ4ID",
          "appliedAt": "2026-10-22T19:12:46.743Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "f785a2055fc3ea7c32aa8447d9c75bb44ecdd774dc7afc9115edcd198b779c00"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:45.864Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:45.870Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:45.879Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:46.457Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:46.744Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:46.746Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:45.864Z",
      "updatedAt": "2026-10-22T19:12:46.746Z",
      "duplicate": false
    }
  3. · POST asana request · provider traffic · /tasks · HTTP 201 · request 345657b556b5 · processing 13.51ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-baseline: supplier bank change (blocked)",
        "notes": "Bank change BC-baseline for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.51ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-baseline: supplier bank change (blocked)",
        "notes": "Bank change BC-baseline for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-baseline: supplier bank change (blocked)",
        "notes": "Bank change BC-baseline for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1"
    }
  4. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 6941b39aecfc · processing 12.49ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-baseline for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.49ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-baseline for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_e6a64aec60544dd4abadd57100",
        "client_msg_id": "cli_5a4d7f82d59b470cbbcd07918c",
        "name": "item-72152a",
        "old_name": "Sample Old",
        "parent_user_id": "par_2be3136d36c4494fb72aef72c2",
        "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": "17NT4REOV0.1YZ4ID"
    }
  5. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:47.216092+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "baseline"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-baseline",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1",
              "appliedAt": "2026-10-22T19:12:46.457Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17NT4REOV0.1YZ4ID",
              "appliedAt": "2026-10-22T19:12:46.743Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 5,
            "head": "f785a2055fc3ea7c32aa8447d9c75bb44ecdd774dc7afc9115edcd198b779c00"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:45.864Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:45.870Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:45.879Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:46.457Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:46.744Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:46.746Z",
              "msg": "done (ok)"
            }
          ],
          "createdAt": "2026-10-22T19:12:45.864Z",
          "updatedAt": "2026-10-22T19:12:46.746Z"
        }
      ]
    }
  6. · POST app request /invocations · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-baseline",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "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:12:47.473451+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-baseline",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "baseline"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "baseline-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "baseline"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-baseline",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1",
          "appliedAt": "2026-10-22T19:12:46.457Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17NT4REOV0.1YZ4ID",
          "appliedAt": "2026-10-22T19:12:46.743Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "eaa1a20504e4e0907722b50692200a79d218bb26863e216a7e1c25c025bbb1cf"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:45.864Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:45.870Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:45.879Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:46.457Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:46.744Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:46.746Z",
          "msg": "done (ok)"
        },
        {
          "at": "2026-10-22T19:12:47.344Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:12:45.864Z",
      "updatedAt": "2026-10-22T19:12:47.344Z",
      "duplicate": true
    }
  7. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs · baseline · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/baseline/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:47.805984+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "baseline"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-baseline",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "0e32f365-b2fe-4c27-84a5-60485a0d0ec1",
              "appliedAt": "2026-10-22T19:12:46.457Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17NT4REOV0.1YZ4ID",
              "appliedAt": "2026-10-22T19:12:46.743Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 6,
            "head": "eaa1a20504e4e0907722b50692200a79d218bb26863e216a7e1c25c025bbb1cf"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:45.864Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:45.870Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:45.879Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:46.457Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:46.744Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:46.746Z",
              "msg": "done (ok)"
            },
            {
              "at": "2026-10-22T19:12:47.344Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:12:45.864Z",
          "updatedAt": "2026-10-22T19:12:47.344Z"
        }
      ]
    }
  8. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs · payments held while verifying · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:48.063829+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  9. · POST app request /invocations · payments held while verifying · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "payments-held-while-verifying-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-payments-held-while-verifying",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "payments_held_while_verifying"
      }
    }'

    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:12:48.726516+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "payments-held-while-verifying-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-payments-held-while-verifying",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "payments_held_while_verifying"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "payments-held-while-verifying-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "payments_held_while_verifying"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-payments-held-while-verifying",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "afbdbcff-17da-4080-8c1c-0ee8307cf06e",
          "appliedAt": "2026-10-22T19:12:48.402Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "1758GBM87F.5I1S3I",
          "appliedAt": "2026-10-22T19:12:48.580Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "7aedc0fb513f33740bc4d1934ebf7cf14579fdb09f6f19932fd9408a026459d3"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:48.214Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:48.215Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:48.225Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:48.402Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:48.580Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:48.585Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:48.214Z",
      "updatedAt": "2026-10-22T19:12:48.585Z",
      "duplicate": false
    }
  10. · POST asana request · provider traffic · /tasks · HTTP 201 · request 34185e3285dd · processing 13.31ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-payments-held-while-verifying: supplier bank change (blocked)",
        "notes": "Bank change BC-payments-held-while-verifying for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.31ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-payments-held-while-verifying: supplier bank change (blocked)",
        "notes": "Bank change BC-payments-held-while-verifying for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-payments-held-while-verifying: supplier bank change (blocked)",
        "notes": "Bank change BC-payments-held-while-verifying for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "afbdbcff-17da-4080-8c1c-0ee8307cf06e"
    }
  11. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request ab3bb92b332e · processing 14.43ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-payments-held-while-verifying for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.43ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-payments-held-while-verifying for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_d22bae97293d4ae78194954249",
        "client_msg_id": "cli_eb0cb9187be544cbb632d4d4bb",
        "name": "item-1892d1",
        "old_name": "Sample Old",
        "parent_user_id": "par_92b862dc293147deba41db25cf",
        "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": "1758GBM87F.5I1S3I"
    }
  12. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs · payments held while verifying · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:49.069675+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "payments-held-while-verifying-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "payments_held_while_verifying"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-payments-held-while-verifying",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "afbdbcff-17da-4080-8c1c-0ee8307cf06e",
              "appliedAt": "2026-10-22T19:12:48.402Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "1758GBM87F.5I1S3I",
              "appliedAt": "2026-10-22T19:12:48.580Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 5,
            "head": "7aedc0fb513f33740bc4d1934ebf7cf14579fdb09f6f19932fd9408a026459d3"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:48.214Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:48.215Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:48.225Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:48.402Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:48.580Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:48.585Z",
              "msg": "done (ok)"
            }
          ],
          "createdAt": "2026-10-22T19:12:48.214Z",
          "updatedAt": "2026-10-22T19:12:48.585Z"
        }
      ]
    }
  13. · POST app request /invocations · payments held while verifying · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "payments-held-while-verifying-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-payments-held-while-verifying",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "payments_held_while_verifying"
      }
    }'

    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:12:49.320021+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "payments-held-while-verifying-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-payments-held-while-verifying",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "payments_held_while_verifying"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "payments-held-while-verifying-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "payments_held_while_verifying"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-payments-held-while-verifying",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "afbdbcff-17da-4080-8c1c-0ee8307cf06e",
          "appliedAt": "2026-10-22T19:12:48.402Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "1758GBM87F.5I1S3I",
          "appliedAt": "2026-10-22T19:12:48.580Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "c043431379f5f527969122c35181ffc8c57682a501d690dee1256fc68be5b152"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:48.214Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:48.215Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:48.225Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:48.402Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:48.580Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:48.585Z",
          "msg": "done (ok)"
        },
        {
          "at": "2026-10-22T19:12:49.181Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:12:48.214Z",
      "updatedAt": "2026-10-22T19:12:49.181Z",
      "duplicate": true
    }
  14. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs · payments held while verifying · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:49.670203+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "payments-held-while-verifying-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "payments_held_while_verifying"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-payments-held-while-verifying",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "afbdbcff-17da-4080-8c1c-0ee8307cf06e",
              "appliedAt": "2026-10-22T19:12:48.402Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "1758GBM87F.5I1S3I",
              "appliedAt": "2026-10-22T19:12:48.580Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 6,
            "head": "c043431379f5f527969122c35181ffc8c57682a501d690dee1256fc68be5b152"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:48.214Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:48.215Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:48.225Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:48.402Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:48.580Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:48.585Z",
              "msg": "done (ok)"
            },
            {
              "at": "2026-10-22T19:12:49.181Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:12:48.214Z",
          "updatedAt": "2026-10-22T19:12:49.181Z"
        }
      ]
    }
  15. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs · callback to number on file · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:49.919871+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  16. · POST app request /invocations · callback to number on file · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "callback-to-number-on-file-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-callback-to-number-on-file",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_to_number_on_file"
      }
    }'

    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:12:50.510802+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "callback-to-number-on-file-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-callback-to-number-on-file",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_to_number_on_file"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "callback-to-number-on-file-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_to_number_on_file"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-callback-to-number-on-file",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "64d9571c-e86f-40ab-a2f2-e8ad1673e3b1",
          "appliedAt": "2026-10-22T19:12:50.229Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17QBTA2LK1.YPTUEE",
          "appliedAt": "2026-10-22T19:12:50.386Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "739639304234043318af796233d45daa1305b7e494a834eeca279667754527f2"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:50.036Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:50.037Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:50.039Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:50.229Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:50.386Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:50.388Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:50.036Z",
      "updatedAt": "2026-10-22T19:12:50.389Z",
      "duplicate": false
    }
  17. · POST asana request · provider traffic · /tasks · HTTP 201 · request fd6186d739ae · processing 14.57ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-callback-to-number-on-file: supplier bank change (blocked)",
        "notes": "Bank change BC-callback-to-number-on-file for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.57ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-callback-to-number-on-file: supplier bank change (blocked)",
        "notes": "Bank change BC-callback-to-number-on-file for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-callback-to-number-on-file: supplier bank change (blocked)",
        "notes": "Bank change BC-callback-to-number-on-file for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "64d9571c-e86f-40ab-a2f2-e8ad1673e3b1"
    }
  18. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 44f7d44a6aa9 · processing 13.69ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-callback-to-number-on-file for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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": "247",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-callback-to-number-on-file for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_61807f90bfef4baaa465f0ecd2",
        "client_msg_id": "cli_97a67364ab4a46b9b87e6619a0",
        "name": "item-c392dc",
        "old_name": "Sample Old",
        "parent_user_id": "par_259d42ba040d4af58ce100faba",
        "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": "17QBTA2LK1.YPTUEE"
    }
  19. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs · callback to number on file · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:50.834321+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "callback-to-number-on-file-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "callback_to_number_on_file"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-callback-to-number-on-file",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "64d9571c-e86f-40ab-a2f2-e8ad1673e3b1",
              "appliedAt": "2026-10-22T19:12:50.229Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17QBTA2LK1.YPTUEE",
              "appliedAt": "2026-10-22T19:12:50.386Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 5,
            "head": "739639304234043318af796233d45daa1305b7e494a834eeca279667754527f2"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:50.036Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:50.037Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:50.039Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:50.229Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:50.386Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:50.388Z",
              "msg": "done (ok)"
            }
          ],
          "createdAt": "2026-10-22T19:12:50.036Z",
          "updatedAt": "2026-10-22T19:12:50.389Z"
        }
      ]
    }
  20. · POST app request /invocations · callback to number on file · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "callback-to-number-on-file-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-callback-to-number-on-file",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_to_number_on_file"
      }
    }'

    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:12:51.075356+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "callback-to-number-on-file-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-callback-to-number-on-file",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_to_number_on_file"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "callback-to-number-on-file-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_to_number_on_file"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-callback-to-number-on-file",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "64d9571c-e86f-40ab-a2f2-e8ad1673e3b1",
          "appliedAt": "2026-10-22T19:12:50.229Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17QBTA2LK1.YPTUEE",
          "appliedAt": "2026-10-22T19:12:50.386Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "4a7e13c0a9fafd399e2229f5ffa03a60c160c5160261c1cd3f7d98e4bbdec1bb"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:50.036Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:50.037Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:50.039Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:50.229Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:50.386Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:50.388Z",
          "msg": "done (ok)"
        },
        {
          "at": "2026-10-22T19:12:50.938Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:12:50.036Z",
      "updatedAt": "2026-10-22T19:12:50.938Z",
      "duplicate": true
    }
  21. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs · callback to number on file · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:51.422892+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "callback-to-number-on-file-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "callback_to_number_on_file"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-callback-to-number-on-file",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "64d9571c-e86f-40ab-a2f2-e8ad1673e3b1",
              "appliedAt": "2026-10-22T19:12:50.229Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17QBTA2LK1.YPTUEE",
              "appliedAt": "2026-10-22T19:12:50.386Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 6,
            "head": "4a7e13c0a9fafd399e2229f5ffa03a60c160c5160261c1cd3f7d98e4bbdec1bb"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:50.036Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:50.037Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:50.039Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:50.229Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:50.386Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:50.388Z",
              "msg": "done (ok)"
            },
            {
              "at": "2026-10-22T19:12:50.938Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:12:50.036Z",
          "updatedAt": "2026-10-22T19:12:50.938Z"
        }
      ]
    }
  22. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/submitter_cannot_confirm/runs · submitter cannot confirm · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/submitter_cannot_confirm/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:51.660738+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  23. · POST app request /invocations · submitter cannot confirm · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "submitter-cannot-confirm-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-submitter-cannot-confirm",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "submitter_cannot_confirm"
      }
    }'

    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:12:52.349444+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "submitter-cannot-confirm-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-submitter-cannot-confirm",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "submitter_cannot_confirm"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "submitter-cannot-confirm-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "submitter_cannot_confirm"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-submitter-cannot-confirm",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "a7c0a660-26ad-477c-8ed6-3819bc46a92a",
          "appliedAt": "2026-10-22T19:12:51.956Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17UK9BV9K5.GR30GL",
          "appliedAt": "2026-10-22T19:12:52.186Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "8c511c7758394df14b1db3d379d09616ffbeef2eb04e68a7c2be9c609f9cc020"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:51.769Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:51.771Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:51.776Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:51.956Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:52.186Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:52.193Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:51.769Z",
      "updatedAt": "2026-10-22T19:12:52.193Z",
      "duplicate": false
    }
  24. · POST asana request · provider traffic · /tasks · HTTP 201 · request 4c4084c31468 · processing 13.15ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-submitter-cannot-confirm: supplier bank change (blocked)",
        "notes": "Bank change BC-submitter-cannot-confirm for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.15ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-submitter-cannot-confirm: supplier bank change (blocked)",
        "notes": "Bank change BC-submitter-cannot-confirm for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-submitter-cannot-confirm: supplier bank change (blocked)",
        "notes": "Bank change BC-submitter-cannot-confirm for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "a7c0a660-26ad-477c-8ed6-3819bc46a92a"
    }
  25. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 1925b8904fc0 · processing 13.72ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-submitter-cannot-confirm for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.72ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-submitter-cannot-confirm for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_62bfcd0863724ab2a1d8e2d1b3",
        "client_msg_id": "cli_a1ae7dadff784732b8a6f860d9",
        "name": "item-9f9e2c",
        "old_name": "Sample Old",
        "parent_user_id": "par_7c38ea3362eb4e48894da0236e",
        "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": "17UK9BV9K5.GR30GL"
    }
  26. · POST app request /invocations · submitter cannot confirm · HTTP 404
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "signal",
      "runId": "submitter-cannot-confirm-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-submitter-cannot-confirm",
      "value": "approve",
      "userId": "U_AP_CLERK"
    }'

    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:12:52.589493+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "signal",
      "runId": "submitter-cannot-confirm-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-submitter-cannot-confirm",
      "value": "approve",
      "userId": "U_AP_CLERK"
    }

    Recorded response · HTTP 404

    {
      "result": "no_such_signal",
      "runId": "submitter-cannot-confirm-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-submitter-cannot-confirm"
    }
  27. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/verifier_cannot_also_approve/runs · verifier cannot also approve · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/verifier_cannot_also_approve/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:52.814747+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  28. · POST app request /invocations · verifier cannot also approve · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "verifier-cannot-also-approve-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-verifier-cannot-also-approve",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "verifier_cannot_also_approve"
      }
    }'

    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:12:53.432982+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "verifier-cannot-also-approve-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-verifier-cannot-also-approve",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "verifier_cannot_also_approve"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "verifier-cannot-also-approve-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "verifier_cannot_also_approve"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-verifier-cannot-also-approve",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "d9ce6338-122e-4788-a92a-95a41749867f",
          "appliedAt": "2026-10-22T19:12:53.138Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17I8TM76N5.MOHSPY",
          "appliedAt": "2026-10-22T19:12:53.308Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "2f0c9f1c3b2486b97b47b8570976134f30d6ea52f7a3343ca3bd214d41043326"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:52.941Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:52.943Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:52.946Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:53.139Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:53.308Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:53.310Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:52.941Z",
      "updatedAt": "2026-10-22T19:12:53.310Z",
      "duplicate": false
    }
  29. · POST asana request · provider traffic · /tasks · HTTP 201 · request b1fd478cd4aa · processing 13.2ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-verifier-cannot-also-approve: supplier bank change (blocked)",
        "notes": "Bank change BC-verifier-cannot-also-approve for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.2ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-verifier-cannot-also-approve: supplier bank change (blocked)",
        "notes": "Bank change BC-verifier-cannot-also-approve for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-verifier-cannot-also-approve: supplier bank change (blocked)",
        "notes": "Bank change BC-verifier-cannot-also-approve for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "d9ce6338-122e-4788-a92a-95a41749867f"
    }
  30. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 4784370897e1 · processing 14.25ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-verifier-cannot-also-approve for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.25ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-verifier-cannot-also-approve for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_95ceea44fd2544aa8473408121",
        "client_msg_id": "cli_0372d25812d949649c8fc15e34",
        "name": "item-d276a7",
        "old_name": "Sample Old",
        "parent_user_id": "par_d3287a7b62824a659d1e953197",
        "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": "17I8TM76N5.MOHSPY"
    }
  31. · POST app request /invocations · verifier cannot also approve · HTTP 404
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "signal",
      "runId": "verifier-cannot-also-approve-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-verifier-cannot-also-approve",
      "value": "approve",
      "userId": "U_AP_VERIFIER"
    }'

    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:12:53.670621+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "signal",
      "runId": "verifier-cannot-also-approve-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-verifier-cannot-also-approve",
      "value": "approve",
      "userId": "U_AP_VERIFIER"
    }

    Recorded response · HTTP 404

    {
      "result": "no_such_signal",
      "runId": "verifier-cannot-also-approve-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-verifier-cannot-also-approve"
    }
  32. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/two_person_rule_applies_change/runs · two person rule applies change · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/two_person_rule_applies_change/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:53.898311+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  33. · POST app request /invocations · two person rule applies change · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "two-person-rule-applies-change-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-two-person-rule-applies-change",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "two_person_rule_applies_change"
      }
    }'

    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:12:54.477037+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "two-person-rule-applies-change-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-two-person-rule-applies-change",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "two_person_rule_applies_change"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "two-person-rule-applies-change-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "two_person_rule_applies_change"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-two-person-rule-applies-change",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "c0f55307-b9be-47de-8c3f-d5ff9eb02a0d",
          "appliedAt": "2026-10-22T19:12:54.194Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17FUJWZIGO.KXYFY9",
          "appliedAt": "2026-10-22T19:12:54.349Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "b92f7a6148ddb8ad48b0fd41245178db93348ec80fd6d9eb231ec85b365eed96"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:54.009Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:54.011Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:54.015Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:54.194Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:54.349Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:54.352Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:54.009Z",
      "updatedAt": "2026-10-22T19:12:54.352Z",
      "duplicate": false
    }
  34. · POST asana request · provider traffic · /tasks · HTTP 201 · request 37b7f52c5982 · processing 13.01ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-two-person-rule-applies-change: supplier bank change (blocked)",
        "notes": "Bank change BC-two-person-rule-applies-change for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.01ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-two-person-rule-applies-change: supplier bank change (blocked)",
        "notes": "Bank change BC-two-person-rule-applies-change for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-two-person-rule-applies-change: supplier bank change (blocked)",
        "notes": "Bank change BC-two-person-rule-applies-change for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "c0f55307-b9be-47de-8c3f-d5ff9eb02a0d"
    }
  35. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 60803b3b7236 · processing 13.88ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-two-person-rule-applies-change for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.88ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-two-person-rule-applies-change for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_7db5bbc0b0e84c95ae3e62485c",
        "client_msg_id": "cli_17b5497d55034a84a4a362a2c6",
        "name": "item-bd3889",
        "old_name": "Sample Old",
        "parent_user_id": "par_3d02524413224a94b64fb29ba0",
        "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": "17FUJWZIGO.KXYFY9"
    }
  36. · POST app request /invocations · two person rule applies change · HTTP 404
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "signal",
      "runId": "two-person-rule-applies-change-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-two-person-rule-applies-change",
      "value": "approve",
      "userId": "U_AP_VERIFIER"
    }'

    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:12:54.720735+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "signal",
      "runId": "two-person-rule-applies-change-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-two-person-rule-applies-change",
      "value": "approve",
      "userId": "U_AP_VERIFIER"
    }

    Recorded response · HTTP 404

    {
      "result": "no_such_signal",
      "runId": "two-person-rule-applies-change-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-two-person-rule-applies-change"
    }
  37. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/treasury_rejection_keeps_old_account/runs · treasury rejection keeps old account · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/treasury_rejection_keeps_old_account/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:54.961678+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  38. · POST app request /invocations · treasury rejection keeps old account · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "treasury-rejection-keeps-old-account-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-treasury-rejection-keeps-old-account",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "treasury_rejection_keeps_old_account"
      }
    }'

    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:12:55.857279+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "treasury-rejection-keeps-old-account-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-treasury-rejection-keeps-old-account",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "treasury_rejection_keeps_old_account"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "treasury-rejection-keeps-old-account-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "treasury_rejection_keeps_old_account"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-treasury-rejection-keeps-old-account",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "7e9f8269-1901-49ae-9140-4b9960a597be",
          "appliedAt": "2026-10-22T19:12:55.255Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17BKG6Q3DO.78ZA4S",
          "appliedAt": "2026-10-22T19:12:55.730Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "b759593e44a2f1a62e48c6f21f91748fc221e9b54243839d44081631f672ae4e"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:55.079Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:55.080Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:55.083Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:55.255Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:55.730Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:55.732Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:55.079Z",
      "updatedAt": "2026-10-22T19:12:55.733Z",
      "duplicate": false
    }
  39. · POST asana request · provider traffic · /tasks · HTTP 201 · request e90bdde806b8 · processing 13.83ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-treasury-rejection-keeps-old-account: supplier bank change (blocked)",
        "notes": "Bank change BC-treasury-rejection-keeps-old-account for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.83ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-treasury-rejection-keeps-old-account: supplier bank change (blocked)",
        "notes": "Bank change BC-treasury-rejection-keeps-old-account for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-treasury-rejection-keeps-old-account: supplier bank change (blocked)",
        "notes": "Bank change BC-treasury-rejection-keeps-old-account for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "7e9f8269-1901-49ae-9140-4b9960a597be"
    }
  40. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 7b7984543860 · processing 14.49ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-treasury-rejection-keeps-old-account for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.49ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-treasury-rejection-keeps-old-account for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_3097cbb00dfd4a32977a8b0aa3",
        "client_msg_id": "cli_b9cd1d99d06244fca2fde7bba7",
        "name": "item-c32626",
        "old_name": "Sample Old",
        "parent_user_id": "par_1e35898cb1874d3e9cda24634a",
        "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": "17BKG6Q3DO.78ZA4S"
    }
  41. · POST app request /invocations · treasury rejection keeps old account · HTTP 404
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "signal",
      "runId": "treasury-rejection-keeps-old-account-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-treasury-rejection-keeps-old-account",
      "value": "approve",
      "userId": "U_AP_VERIFIER"
    }'

    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:12:56.137233+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "signal",
      "runId": "treasury-rejection-keeps-old-account-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-treasury-rejection-keeps-old-account",
      "value": "approve",
      "userId": "U_AP_VERIFIER"
    }

    Recorded response · HTTP 404

    {
      "result": "no_such_signal",
      "runId": "treasury-rejection-keeps-old-account-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "actionId": "ap.confirm_callback:BC-treasury-rejection-keeps-old-account"
    }
  42. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs · callback deadline rejects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:56.388482+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  43. · POST app request /invocations · callback deadline rejects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "callback-deadline-rejects-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-callback-deadline-rejects",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_deadline_rejects"
      }
    }'

    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:12:57.000064+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "callback-deadline-rejects-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-callback-deadline-rejects",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_deadline_rejects"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "callback-deadline-rejects-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_deadline_rejects"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-callback-deadline-rejects",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "0d4886bb-356e-45ed-a306-f590385131eb",
          "appliedAt": "2026-10-22T19:12:56.680Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17FO2YXYVZ.D2Q3CC",
          "appliedAt": "2026-10-22T19:12:56.870Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "1439073fa025eb315832f7b7960f59630cc8f10bbffe94edf4fdf618a1805548"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:56.503Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:56.504Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:56.508Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:56.680Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:56.871Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:56.873Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:56.503Z",
      "updatedAt": "2026-10-22T19:12:56.873Z",
      "duplicate": false
    }
  44. · POST asana request · provider traffic · /tasks · HTTP 201 · request 22b8e060c401 · processing 13.24ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-callback-deadline-rejects: supplier bank change (blocked)",
        "notes": "Bank change BC-callback-deadline-rejects for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.24ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-callback-deadline-rejects: supplier bank change (blocked)",
        "notes": "Bank change BC-callback-deadline-rejects for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-callback-deadline-rejects: supplier bank change (blocked)",
        "notes": "Bank change BC-callback-deadline-rejects for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "0d4886bb-356e-45ed-a306-f590385131eb"
    }
  45. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 113969925eec · processing 13.72ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-callback-deadline-rejects for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.72ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-callback-deadline-rejects for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_a49ae526e3c545f7af862df4f9",
        "client_msg_id": "cli_b1c5cc3102884367be66336401",
        "name": "item-4035e2",
        "old_name": "Sample Old",
        "parent_user_id": "par_f2eff947d60e45ea82f0e4c14d",
        "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": "17FO2YXYVZ.D2Q3CC"
    }
  46. · POST app request /invocations · callback deadline rejects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:57.232160+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  47. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs · callback deadline rejects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:57.575161+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "callback-deadline-rejects-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "callback_deadline_rejects"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-callback-deadline-rejects",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "0d4886bb-356e-45ed-a306-f590385131eb",
              "appliedAt": "2026-10-22T19:12:56.680Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17FO2YXYVZ.D2Q3CC",
              "appliedAt": "2026-10-22T19:12:56.870Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 5,
            "head": "1439073fa025eb315832f7b7960f59630cc8f10bbffe94edf4fdf618a1805548"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:56.503Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:56.504Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:56.508Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:56.680Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:56.871Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:56.873Z",
              "msg": "done (ok)"
            }
          ],
          "createdAt": "2026-10-22T19:12:56.503Z",
          "updatedAt": "2026-10-22T19:12:56.873Z"
        }
      ]
    }
  48. · POST app request /invocations · callback deadline rejects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "callback-deadline-rejects-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-callback-deadline-rejects",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_deadline_rejects"
      }
    }'

    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:12:57.818474+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "callback-deadline-rejects-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-callback-deadline-rejects",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_deadline_rejects"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "callback-deadline-rejects-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "callback_deadline_rejects"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-callback-deadline-rejects",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "0d4886bb-356e-45ed-a306-f590385131eb",
          "appliedAt": "2026-10-22T19:12:56.680Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17FO2YXYVZ.D2Q3CC",
          "appliedAt": "2026-10-22T19:12:56.870Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "75e021a6d14402dcf1342d2403b55cf894cf153c03d21a332b50b482b0626872"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:56.503Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:56.504Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:56.508Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:56.680Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:56.871Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:56.873Z",
          "msg": "done (ok)"
        },
        {
          "at": "2026-10-22T19:12:57.686Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:12:56.503Z",
      "updatedAt": "2026-10-22T19:12:57.686Z",
      "duplicate": true
    }
  49. · POST app request /invocations · callback deadline rejects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:58.041890+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  50. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs · callback deadline rejects · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:58.384847+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "callback-deadline-rejects-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "callback_deadline_rejects"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-callback-deadline-rejects",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "0d4886bb-356e-45ed-a306-f590385131eb",
              "appliedAt": "2026-10-22T19:12:56.680Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17FO2YXYVZ.D2Q3CC",
              "appliedAt": "2026-10-22T19:12:56.870Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 6,
            "head": "75e021a6d14402dcf1342d2403b55cf894cf153c03d21a332b50b482b0626872"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:56.503Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:56.504Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:56.508Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:56.680Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:56.871Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:56.873Z",
              "msg": "done (ok)"
            },
            {
              "at": "2026-10-22T19:12:57.686Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:12:56.503Z",
          "updatedAt": "2026-10-22T19:12:57.686Z"
        }
      ]
    }
  51. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs · ownership checked with plaid · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:58.608537+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  52. · POST app request /invocations · ownership checked with plaid · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "ownership-checked-with-plaid-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-ownership-checked-with-plaid",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "ownership_checked_with_plaid"
      }
    }'

    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:12:59.217484+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "ownership-checked-with-plaid-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-ownership-checked-with-plaid",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "ownership_checked_with_plaid"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "ownership-checked-with-plaid-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "ownership_checked_with_plaid"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-ownership-checked-with-plaid",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "83fdb294-3966-4e89-969d-f46e7d556beb",
          "appliedAt": "2026-10-22T19:12:58.909Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17YLZG7U8Q.38LO8J",
          "appliedAt": "2026-10-22T19:12:59.095Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "61202b6d6a70ec5d729b2566e85d12d3c80273aab5df6b1f437e1211eff50503"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:58.723Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:58.725Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:58.728Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:58.909Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:59.095Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:59.097Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:12:58.723Z",
      "updatedAt": "2026-10-22T19:12:59.097Z",
      "duplicate": false
    }
  53. · POST asana request · provider traffic · /tasks · HTTP 201 · request 9e0a75548876 · processing 13.35ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-ownership-checked-with-plaid: supplier bank change (blocked)",
        "notes": "Bank change BC-ownership-checked-with-plaid for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.35ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-ownership-checked-with-plaid: supplier bank change (blocked)",
        "notes": "Bank change BC-ownership-checked-with-plaid for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-ownership-checked-with-plaid: supplier bank change (blocked)",
        "notes": "Bank change BC-ownership-checked-with-plaid for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "83fdb294-3966-4e89-969d-f46e7d556beb"
    }
  54. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request a7fc147b1ff0 · processing 14.35ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-ownership-checked-with-plaid for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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": "249",
      "user-agent": "node",
      "accept": "application/json",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "content-type": "application/json; charset=utf-8"
    }

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-ownership-checked-with-plaid for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_1c5082cc75b041f9bfcf71e6c9",
        "client_msg_id": "cli_cac2eabd5cb74fdc99091883c4",
        "name": "item-f8531c",
        "old_name": "Sample Old",
        "parent_user_id": "par_f8847002bb6f49b7acfb44f462",
        "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": "17YLZG7U8Q.38LO8J"
    }
  55. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs · ownership checked with plaid · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:12:59.572352+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "ownership-checked-with-plaid-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "ownership_checked_with_plaid"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-ownership-checked-with-plaid",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "83fdb294-3966-4e89-969d-f46e7d556beb",
              "appliedAt": "2026-10-22T19:12:58.909Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17YLZG7U8Q.38LO8J",
              "appliedAt": "2026-10-22T19:12:59.095Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 5,
            "head": "61202b6d6a70ec5d729b2566e85d12d3c80273aab5df6b1f437e1211eff50503"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:58.723Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:58.725Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:58.728Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:58.909Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:59.095Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:59.097Z",
              "msg": "done (ok)"
            }
          ],
          "createdAt": "2026-10-22T19:12:58.723Z",
          "updatedAt": "2026-10-22T19:12:59.097Z"
        }
      ]
    }
  56. · POST app request /invocations · ownership checked with plaid · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "ownership-checked-with-plaid-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-ownership-checked-with-plaid",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "ownership_checked_with_plaid"
      }
    }'

    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:12:59.817565+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "ownership-checked-with-plaid-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-ownership-checked-with-plaid",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "ownership_checked_with_plaid"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "ownership-checked-with-plaid-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "ownership_checked_with_plaid"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-ownership-checked-with-plaid",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "83fdb294-3966-4e89-969d-f46e7d556beb",
          "appliedAt": "2026-10-22T19:12:58.909Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17YLZG7U8Q.38LO8J",
          "appliedAt": "2026-10-22T19:12:59.095Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "cc7b3d87ef914df0494d3f0b5316bdea54cea82b4255339ecaf217533ad24e41"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:12:58.723Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:12:58.725Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:12:58.728Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:12:58.909Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:12:59.095Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:12:59.097Z",
          "msg": "done (ok)"
        },
        {
          "at": "2026-10-22T19:12:59.683Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:12:58.723Z",
      "updatedAt": "2026-10-22T19:12:59.683Z",
      "duplicate": true
    }
  57. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs · ownership checked with plaid · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:00.315535+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "ownership-checked-with-plaid-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "ownership_checked_with_plaid"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-ownership-checked-with-plaid",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "83fdb294-3966-4e89-969d-f46e7d556beb",
              "appliedAt": "2026-10-22T19:12:58.909Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17YLZG7U8Q.38LO8J",
              "appliedAt": "2026-10-22T19:12:59.095Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 6,
            "head": "cc7b3d87ef914df0494d3f0b5316bdea54cea82b4255339ecaf217533ad24e41"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:12:58.723Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:12:58.725Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:12:58.728Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:12:58.909Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:12:59.095Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:12:59.097Z",
              "msg": "done (ok)"
            },
            {
              "at": "2026-10-22T19:12:59.683Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:12:58.723Z",
          "updatedAt": "2026-10-22T19:12:59.683Z"
        }
      ]
    }
  58. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs · sanctions screened · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:00.580908+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  59. · POST app request /invocations · sanctions screened · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "sanctions-screened-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-sanctions-screened",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "sanctions_screened"
      }
    }'

    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:13:01.207443+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "sanctions-screened-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-sanctions-screened",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "sanctions_screened"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "sanctions-screened-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "sanctions_screened"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 1
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-sanctions-screened",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "07154fe0-453c-46b4-aa51-ae7e265c7ad4",
          "appliedAt": "2026-10-22T19:13:00.893Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17ZL8XCWS2.KZ46R5",
          "appliedAt": "2026-10-22T19:13:01.066Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "2b8a50987943b0ebe8d29b0c8fbc5d8c14e2b43757cfb6c00ac0a33f31e3c5e0"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:13:00.708Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:13:00.710Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:13:00.715Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:13:00.893Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:13:01.066Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:13:01.069Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:13:00.708Z",
      "updatedAt": "2026-10-22T19:13:01.069Z",
      "duplicate": false
    }
  60. · POST asana request · provider traffic · /tasks · HTTP 201 · request 3ea3ad789e2b · processing 14.04ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-sanctions-screened: supplier bank change (blocked)",
        "notes": "Bank change BC-sanctions-screened for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.04ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-sanctions-screened: supplier bank change (blocked)",
        "notes": "Bank change BC-sanctions-screened for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-sanctions-screened: supplier bank change (blocked)",
        "notes": "Bank change BC-sanctions-screened for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "07154fe0-453c-46b4-aa51-ae7e265c7ad4"
    }
  61. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request b7abd5bcadf5 · processing 13.96ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-sanctions-screened for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.96ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-sanctions-screened for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_ea685373428541ef88e9e696d0",
        "client_msg_id": "cli_aa493642504e453b9d5caf4919",
        "name": "item-13de10",
        "old_name": "Sample Old",
        "parent_user_id": "par_d71e3a99c2d04451ae277b4293",
        "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": "17ZL8XCWS2.KZ46R5"
    }
  62. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs · sanctions screened · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:01.677599+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "sanctions-screened-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "sanctions_screened"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 1
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-sanctions-screened",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "07154fe0-453c-46b4-aa51-ae7e265c7ad4",
              "appliedAt": "2026-10-22T19:13:00.893Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17ZL8XCWS2.KZ46R5",
              "appliedAt": "2026-10-22T19:13:01.066Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 5,
            "head": "2b8a50987943b0ebe8d29b0c8fbc5d8c14e2b43757cfb6c00ac0a33f31e3c5e0"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:13:00.708Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:13:00.710Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:13:00.715Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:13:00.893Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:13:01.066Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:13:01.069Z",
              "msg": "done (ok)"
            }
          ],
          "createdAt": "2026-10-22T19:13:00.708Z",
          "updatedAt": "2026-10-22T19:13:01.069Z"
        }
      ]
    }
  63. · POST app request /invocations · sanctions screened · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "sanctions-screened-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-sanctions-screened",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "sanctions_screened"
      }
    }'

    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:13:02.008554+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "sanctions-screened-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-sanctions-screened",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "sanctions_screened"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "sanctions-screened-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "sanctions_screened"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 1
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-sanctions-screened",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "07154fe0-453c-46b4-aa51-ae7e265c7ad4",
          "appliedAt": "2026-10-22T19:13:00.893Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17ZL8XCWS2.KZ46R5",
          "appliedAt": "2026-10-22T19:13:01.066Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "4881f573c85ed250c752f34ed7d11eef0a2fd8e6499e00178550e62f2b9b62d5"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:13:00.708Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:13:00.710Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:13:00.715Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:13:00.893Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:13:01.066Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:13:01.069Z",
          "msg": "done (ok)"
        },
        {
          "at": "2026-10-22T19:13:01.832Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:13:00.708Z",
      "updatedAt": "2026-10-22T19:13:01.832Z",
      "duplicate": true
    }
  64. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs · sanctions screened · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:02.598206+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "sanctions-screened-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "sanctions_screened"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 1
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-sanctions-screened",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "07154fe0-453c-46b4-aa51-ae7e265c7ad4",
              "appliedAt": "2026-10-22T19:13:00.893Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17ZL8XCWS2.KZ46R5",
              "appliedAt": "2026-10-22T19:13:01.066Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 6,
            "head": "4881f573c85ed250c752f34ed7d11eef0a2fd8e6499e00178550e62f2b9b62d5"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:13:00.708Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:13:00.710Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:13:00.715Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:13:00.893Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:13:01.066Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:13:01.069Z",
              "msg": "done (ok)"
            },
            {
              "at": "2026-10-22T19:13:01.832Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:13:00.708Z",
          "updatedAt": "2026-10-22T19:13:01.832Z"
        }
      ]
    }
  65. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs · unreadable vendor blocks · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:02.967814+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  66. · POST app request /invocations · unreadable vendor blocks · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "unreadable-vendor-blocks-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-unreadable-vendor-blocks",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "unreadable_vendor_blocks"
      }
    }'

    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:13:03.635407+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "unreadable-vendor-blocks-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-unreadable-vendor-blocks",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "unreadable_vendor_blocks"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "unreadable-vendor-blocks-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "unreadable_vendor_blocks"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-unreadable-vendor-blocks",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "1058a4bd-54bd-456e-94a5-4f774fb3525f",
          "appliedAt": "2026-10-22T19:13:03.332Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17KY7CXPJ8.K1M5ST",
          "appliedAt": "2026-10-22T19:13:03.505Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "0d92dc458039315de284a21289ed2620343a7cd2c4f54608a909e270729cbe70"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:13:03.125Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:13:03.126Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:13:03.130Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:13:03.332Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:13:03.505Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:13:03.507Z",
          "msg": "done (ok)"
        }
      ],
      "createdAt": "2026-10-22T19:13:03.125Z",
      "updatedAt": "2026-10-22T19:13:03.507Z",
      "duplicate": false
    }
  67. · POST asana request · provider traffic · /tasks · HTTP 201 · request 77b5f0d76295 · processing 17.72ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-unreadable-vendor-blocks: supplier bank change (blocked)",
        "notes": "Bank change BC-unreadable-vendor-blocks for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.72ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-unreadable-vendor-blocks: supplier bank change (blocked)",
        "notes": "Bank change BC-unreadable-vendor-blocks for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-unreadable-vendor-blocks: supplier bank change (blocked)",
        "notes": "Bank change BC-unreadable-vendor-blocks for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "1058a4bd-54bd-456e-94a5-4f774fb3525f"
    }
  68. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 1de7c365c505 · processing 14.02ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-unreadable-vendor-blocks for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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.02ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-unreadable-vendor-blocks for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 200

    {
      "channel": "C0SECURITY1",
      "message": {
        "bot_id": "bot_7a742548fa7847e59896a51c68",
        "client_msg_id": "cli_8b9ddca8c6c54426ba49b1e8b5",
        "name": "item-2c30d2",
        "old_name": "Sample Old",
        "parent_user_id": "par_e8a19571fddf4cd4910fb3a975",
        "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": "17KY7CXPJ8.K1M5ST"
    }
  69. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs · unreadable vendor blocks · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:03.979120+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "unreadable-vendor-blocks-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "unreadable_vendor_blocks"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-unreadable-vendor-blocks",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "1058a4bd-54bd-456e-94a5-4f774fb3525f",
              "appliedAt": "2026-10-22T19:13:03.332Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17KY7CXPJ8.K1M5ST",
              "appliedAt": "2026-10-22T19:13:03.505Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 5,
            "head": "0d92dc458039315de284a21289ed2620343a7cd2c4f54608a909e270729cbe70"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:13:03.125Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:13:03.126Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:13:03.130Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:13:03.332Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:13:03.505Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:13:03.507Z",
              "msg": "done (ok)"
            }
          ],
          "createdAt": "2026-10-22T19:13:03.125Z",
          "updatedAt": "2026-10-22T19:13:03.507Z"
        }
      ]
    }
  70. · POST app request /invocations · unreadable vendor blocks · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "unreadable-vendor-blocks-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-unreadable-vendor-blocks",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "unreadable_vendor_blocks"
      }
    }'

    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:13:04.241725+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "unreadable-vendor-blocks-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-unreadable-vendor-blocks",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "unreadable_vendor_blocks"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "unreadable-vendor-blocks-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "ok",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "unreadable_vendor_blocks"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-unreadable-vendor-blocks",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "1058a4bd-54bd-456e-94a5-4f774fb3525f",
          "appliedAt": "2026-10-22T19:13:03.332Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "17KY7CXPJ8.K1M5ST",
          "appliedAt": "2026-10-22T19:13:03.505Z",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 2,
        "failed": 0,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "606f6192a6c484a8de81ef1c3648703d788014bc5de1123974829da30e38385e"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:13:03.125Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:13:03.126Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:13:03.130Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:13:03.332Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:13:03.505Z",
          "msg": "slack.post_change: applied"
        },
        {
          "at": "2026-10-22T19:13:03.507Z",
          "msg": "done (ok)"
        },
        {
          "at": "2026-10-22T19:13:04.096Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:13:03.125Z",
      "updatedAt": "2026-10-22T19:13:04.097Z",
      "duplicate": true
    }
  71. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs · unreadable vendor blocks · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:04.600991+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "unreadable-vendor-blocks-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "ok",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "unreadable_vendor_blocks"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-unreadable-vendor-blocks",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "1058a4bd-54bd-456e-94a5-4f774fb3525f",
              "appliedAt": "2026-10-22T19:13:03.332Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "17KY7CXPJ8.K1M5ST",
              "appliedAt": "2026-10-22T19:13:03.505Z",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 2,
            "failed": 0,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 6,
            "head": "606f6192a6c484a8de81ef1c3648703d788014bc5de1123974829da30e38385e"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:13:03.125Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:13:03.126Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:13:03.130Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:13:03.332Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:13:03.505Z",
              "msg": "slack.post_change: applied"
            },
            {
              "at": "2026-10-22T19:13:03.507Z",
              "msg": "done (ok)"
            },
            {
              "at": "2026-10-22T19:13:04.096Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:13:03.125Z",
          "updatedAt": "2026-10-22T19:13:04.097Z"
        }
      ]
    }
  72. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs · slack rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:04.829110+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  73. · POST app request /invocations · slack rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "slack-rate-limited-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-slack-rate-limited",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "slack_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:13:14.013900+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "slack-rate-limited-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-slack-rate-limited",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "slack_rate_limited"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "slack-rate-limited-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "slack_rate_limited"
      },
      "duplicateStarts": 0,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-slack-rate-limited",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "db5cb6a1-72f6-45ba-9b9e-decf582e32b1",
          "appliedAt": "2026-10-22T19:13:05.152Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
          "errorCode": "slack:ratelimited",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 1,
        "failed": 1,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 5,
        "head": "5d9f8bdd1be775b547f73d6ffac44500833330f33c58b2c12f9b050894201288"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:13:04.951Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:13:04.952Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:13:04.957Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:13:05.152Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:13:13.786Z",
          "msg": "slack.post_change: failed (slack:ratelimited)"
        },
        {
          "at": "2026-10-22T19:13:13.789Z",
          "msg": "done (partial)"
        }
      ],
      "createdAt": "2026-10-22T19:13:04.951Z",
      "updatedAt": "2026-10-22T19:13:13.790Z",
      "duplicate": false
    }
  74. · POST asana request · provider traffic · /tasks · HTTP 201 · request def6a12aa5f7 · processing 13.74ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/153a982350/tasks' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "data": {
        "name": "BC-slack-rate-limited: supplier bank change (blocked)",
        "notes": "Bank change BC-slack-rate-limited for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }'

    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.74ms.

    Recorded request headers

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

    Recorded response headers

    Response headers were not saved in this run.

    Request body

    {
      "data": {
        "name": "BC-slack-rate-limited: supplier bank change (blocked)",
        "notes": "Bank change BC-slack-rate-limited for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      }
    }

    Recorded response · HTTP 201

    {
      "data": {
        "name": "BC-slack-rate-limited: supplier bank change (blocked)",
        "notes": "Bank change BC-slack-rate-limited for vendor 731: blocked, risk high.\nRequested via email by U_AP_CLERK; new account •••9012.\nNo red flags.\nReason: vendor record could not be read.",
        "workspace": "acme-ap"
      },
      "id": "db5cb6a1-72f6-45ba-9b9e-decf582e32b1"
    }
  75. · POST slack request · slack rate limited · /api/chat.postMessage · HTTP 429 · processing 0.87ms
    View sanitized request and response

    Curl-style request view

    curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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 was not recorded. Provider processing: 0.87ms.

    Recorded request headers

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

    Recorded response headers

    {
      "retry-after": "30"
    }

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 429

    {
      "ok": false,
      "error": "ratelimited"
    }
  76. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 429 · request 59c2460ae18d · processing 0.87ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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: 0.87ms.

    Recorded request headers

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

    Recorded response headers

    {
      "retry-after": "30"
    }

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 429

    {
      "ok": false,
      "error": "ratelimited"
    }
  77. · POST slack request · slack rate limited · /api/chat.postMessage · HTTP 429 · processing 0.95ms
    View sanitized request and response

    Curl-style request view

    curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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 was not recorded. Provider processing: 0.95ms.

    Recorded request headers

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

    Recorded response headers

    {
      "retry-after": "30"
    }

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 429

    {
      "ok": false,
      "error": "ratelimited"
    }
  78. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 429 · request da656a72d6fd · processing 0.95ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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: 0.95ms.

    Recorded request headers

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

    Recorded response headers

    {
      "retry-after": "30"
    }

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 429

    {
      "ok": false,
      "error": "ratelimited"
    }
  79. · POST slack request · slack rate limited · /api/chat.postMessage · HTTP 429 · processing 0.89ms
    View sanitized request and response

    Curl-style request view

    curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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 was not recorded. Provider processing: 0.89ms.

    Recorded request headers

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

    Recorded response headers

    {
      "retry-after": "30"
    }

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 429

    {
      "ok": false,
      "error": "ratelimited"
    }
  80. · POST slack request · provider traffic · /api/chat.postMessage · HTTP 429 · request a5d31329d5a1 · processing 0.89ms
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/sandbox/459cdd11ad/api/chat.postMessage' \
      --header 'host: fetchsandbox.com' \
      --header 'user-agent: node' \
      --header 'accept: application/json' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'content-type: application/json; charset=utf-8' \
      --data-raw '{
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "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: 0.89ms.

    Recorded request headers

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

    Recorded response headers

    {
      "retry-after": "30"
    }

    Request body

    {
      "channel": "C0SECURITY1",
      "text": ":rotating_light: Bank change BC-slack-rate-limited for vendor 731: blocked, risk high. Requested via email by U_AP_CLERK; new account •••9012. No red flags.",
      "unfurl_links": false,
      "unfurl_media": false
    }

    Recorded response · HTTP 429

    {
      "ok": false,
      "error": "ratelimited"
    }
  81. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs · slack rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:14.372881+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "slack-rate-limited-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "slack_rate_limited"
          },
          "duplicateStarts": 0,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-slack-rate-limited",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "db5cb6a1-72f6-45ba-9b9e-decf582e32b1",
              "appliedAt": "2026-10-22T19:13:05.152Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
              "errorCode": "slack:ratelimited",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 1,
            "failed": 1,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 5,
            "head": "5d9f8bdd1be775b547f73d6ffac44500833330f33c58b2c12f9b050894201288"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:13:04.951Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:13:04.952Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:13:04.957Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:13:05.152Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:13:13.786Z",
              "msg": "slack.post_change: failed (slack:ratelimited)"
            },
            {
              "at": "2026-10-22T19:13:13.789Z",
              "msg": "done (partial)"
            }
          ],
          "createdAt": "2026-10-22T19:13:04.951Z",
          "updatedAt": "2026-10-22T19:13:13.790Z"
        }
      ]
    }
  82. · POST app request /invocations · slack rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request POST 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "slack-rate-limited-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-slack-rate-limited",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "slack_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:13:14.650631+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "slack-rate-limited-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-slack-rate-limited",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "Northwind Traders LLC",
          "last4": "9012",
          "vaultToken": "[redacted]",
          "plaidAccessToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "slack_rate_limited"
      }
    }

    Recorded response · HTTP 200

    {
      "runId": "slack-rate-limited-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "workflow": "supplier-bank-change",
      "metadata": {
        "organization": "Acme",
        "company": "Acme Corporation",
        "environment": "unconfigured",
        "owner": "unassigned",
        "department": "unassigned",
        "ownerTeam": "unassigned",
        "oncall": "unassigned",
        "version": "unversioned",
        "sourceCommit": "unrecorded"
      },
      "org": "Finance",
      "team": "accounts-payable",
      "phase": "DONE",
      "closed": true,
      "outcome": "partial",
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "slack_rate_limited"
      },
      "duplicateStarts": 1,
      "agents": [
        {
          "name": "vendor-record",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "bank-ownership",
          "status": "skipped",
          "error": "not configured: netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "sanctions",
          "status": "skipped",
          "error": "not configured: screening, netsuite",
          "errorCode": "not_configured",
          "durationMs": 0
        },
        {
          "name": "assessment",
          "status": "ok",
          "summary": "blocked (high): vendor record could not be read",
          "durationMs": 0
        }
      ],
      "actions": [
        {
          "id": "asana.change_record",
          "kind": "asana.change_record",
          "provider": "asana",
          "agent": "assessment",
          "gate": "auto",
          "status": "applied",
          "summary": {
            "change": "BC-slack-rate-limited",
            "mode": "blocked"
          },
          "attempts": 1,
          "ref": "db5cb6a1-72f6-45ba-9b9e-decf582e32b1",
          "appliedAt": "2026-10-22T19:13:05.152Z",
          "reconciled": null
        },
        {
          "id": "slack.post_change",
          "kind": "slack.post_change",
          "provider": "slack",
          "agent": "assessment",
          "gate": "auto",
          "status": "failed",
          "summary": {
            "channel": "C0SECURITY1",
            "mode": "blocked"
          },
          "attempts": 1,
          "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
          "errorCode": "slack:ratelimited",
          "reconciled": null
        }
      ],
      "counts": {
        "applied": 1,
        "failed": 1,
        "pendingApproval": 0,
        "skipped": 0,
        "rejected": 0,
        "scheduled": 0,
        "awaitingSignal": 0,
        "compensated": 0
      },
      "wakeAt": null,
      "audit": {
        "seq": 6,
        "head": "a8712f3e96230ea0cd3f5ca16e926ba9e5f749b4b3726e0e25e620396445e397"
      },
      "output": {
        "mode": "blocked",
        "risk": "high",
        "reason": "vendor record could not be read",
        "flags": []
      },
      "events": [
        {
          "at": "2026-10-22T19:13:04.951Z",
          "msg": "started by U_FETCHSANDBOX"
        },
        {
          "at": "2026-10-22T19:13:04.952Z",
          "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
        },
        {
          "at": "2026-10-22T19:13:04.957Z",
          "msg": "planned 2 action(s): 0 need approval"
        },
        {
          "at": "2026-10-22T19:13:05.152Z",
          "msg": "asana.change_record: applied"
        },
        {
          "at": "2026-10-22T19:13:13.786Z",
          "msg": "slack.post_change: failed (slack:ratelimited)"
        },
        {
          "at": "2026-10-22T19:13:13.789Z",
          "msg": "done (partial)"
        },
        {
          "at": "2026-10-22T19:13:14.492Z",
          "msg": "duplicate start ignored"
        }
      ],
      "createdAt": "2026-10-22T19:13:04.951Z",
      "updatedAt": "2026-10-22T19:13:14.492Z",
      "duplicate": true
    }
  83. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs · slack rate limited · HTTP 200
    View sanitized request and response

    Curl-style request view

    curl --request GET 'https://fetchsandbox.com/api/relay/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:14.972082+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": "slack-rate-limited-vr_1d352154f9af49b5b8738b1d015ff7e8",
          "workflow": "supplier-bank-change",
          "metadata": {
            "organization": "Acme",
            "company": "Acme Corporation",
            "environment": "unconfigured",
            "owner": "unassigned",
            "department": "unassigned",
            "ownerTeam": "unassigned",
            "oncall": "unassigned",
            "version": "unversioned",
            "sourceCommit": "unrecorded"
          },
          "org": "Finance",
          "team": "accounts-payable",
          "phase": "DONE",
          "closed": true,
          "outcome": "partial",
          "requestedBy": {
            "userId": "U_FETCHSANDBOX"
          },
          "labels": {
            "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
            "fs_case": "slack_rate_limited"
          },
          "duplicateStarts": 1,
          "agents": [
            {
              "name": "vendor-record",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "bank-ownership",
              "status": "skipped",
              "error": "not configured: netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "sanctions",
              "status": "skipped",
              "error": "not configured: screening, netsuite",
              "errorCode": "not_configured",
              "durationMs": 0
            },
            {
              "name": "assessment",
              "status": "ok",
              "summary": "blocked (high): vendor record could not be read",
              "durationMs": 0
            }
          ],
          "actions": [
            {
              "id": "asana.change_record",
              "kind": "asana.change_record",
              "provider": "asana",
              "agent": "assessment",
              "gate": "auto",
              "status": "applied",
              "summary": {
                "change": "BC-slack-rate-limited",
                "mode": "blocked"
              },
              "attempts": 1,
              "ref": "db5cb6a1-72f6-45ba-9b9e-decf582e32b1",
              "appliedAt": "2026-10-22T19:13:05.152Z",
              "reconciled": null
            },
            {
              "id": "slack.post_change",
              "kind": "slack.post_change",
              "provider": "slack",
              "agent": "assessment",
              "gate": "auto",
              "status": "failed",
              "summary": {
                "channel": "C0SECURITY1",
                "mode": "blocked"
              },
              "attempts": 1,
              "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
              "errorCode": "slack:ratelimited",
              "reconciled": null
            }
          ],
          "counts": {
            "applied": 1,
            "failed": 1,
            "pendingApproval": 0,
            "skipped": 0,
            "rejected": 0,
            "scheduled": 0,
            "awaitingSignal": 0,
            "compensated": 0
          },
          "wakeAt": null,
          "audit": {
            "seq": 6,
            "head": "a8712f3e96230ea0cd3f5ca16e926ba9e5f749b4b3726e0e25e620396445e397"
          },
          "output": {
            "mode": "blocked",
            "risk": "high",
            "reason": "vendor record could not be read",
            "flags": []
          },
          "events": [
            {
              "at": "2026-10-22T19:13:04.951Z",
              "msg": "started by U_FETCHSANDBOX"
            },
            {
              "at": "2026-10-22T19:13:04.952Z",
              "msg": "agents: vendor-record=skipped, bank-ownership=skipped, sanctions=skipped"
            },
            {
              "at": "2026-10-22T19:13:04.957Z",
              "msg": "planned 2 action(s): 0 need approval"
            },
            {
              "at": "2026-10-22T19:13:05.152Z",
              "msg": "asana.change_record: applied"
            },
            {
              "at": "2026-10-22T19:13:13.786Z",
              "msg": "slack.post_change: failed (slack:ratelimited)"
            },
            {
              "at": "2026-10-22T19:13:13.789Z",
              "msg": "done (partial)"
            },
            {
              "at": "2026-10-22T19:13:14.492Z",
              "msg": "duplicate start ignored"
            }
          ],
          "createdAt": "2026-10-22T19:13:04.951Z",
          "updatedAt": "2026-10-22T19:13:14.492Z"
        }
      ]
    }
  84. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/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_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:15.379570+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  85. · 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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "invalid-input-rejected-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-invalid-input-rejected",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "x",
          "last4": "9012",
          "vaultToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "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:13:15.647802+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "invalid-input-rejected-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-invalid-input-rejected",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "x",
          "last4": "9012",
          "vaultToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "invalid_input_rejected"
      }
    }

    Recorded response · HTTP 400

    {
      "error": "invalid input",
      "issues": [
        "newBank.vaultToken: Invalid string: must match pattern /^tok_[\\w-]{6,80}$/"
      ]
    }
  86. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/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_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:15.981462+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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": []
    }
  87. · 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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/invocations' \
      --header 'accept: */*' \
      --header 'user-agent: python-httpx/0.28.1' \
      --header 'host: fetchsandbox.com' \
      --header 'x-flow-run-id: vr_1d352154f9af49b5b8738b1d015ff7e8' \
      --header 'x-fetchsandbox-relay: [redacted]' \
      --header 'authorization: [redacted]' \
      --header 'content-type: application/json' \
      --data-raw '{
      "action": "start",
      "runId": "invalid-input-rejected-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-invalid-input-rejected",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "x",
          "last4": "9012",
          "vaultToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "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:13:16.212676+00:00.

    Recorded request headers

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

    Recorded response headers

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

    Request body

    {
      "action": "start",
      "runId": "invalid-input-rejected-vr_1d352154f9af49b5b8738b1d015ff7e8",
      "input": {
        "changeId": "BC-invalid-input-rejected",
        "vendorId": "731",
        "submittedBy": "U_AP_CLERK",
        "source": "email",
        "requestEmail": "[email protected]",
        "newBank": {
          "accountName": "x",
          "last4": "9012",
          "vaultToken": "[redacted]"
        },
        "verifiers": [
          "U_AP_CLERK",
          "U_AP_VERIFIER"
        ],
        "apChannel": "C0FINANCE01",
        "securityChannel": "C0SECURITY1",
        "approvers": [
          "U_TREASURY",
          "U_AP_VERIFIER"
        ]
      },
      "requestedBy": {
        "userId": "U_FETCHSANDBOX"
      },
      "labels": {
        "fs_run": "vr_1d352154f9af49b5b8738b1d015ff7e8",
        "fs_case": "invalid_input_rejected"
      }
    }

    Recorded response · HTTP 400

    {
      "error": "invalid input",
      "issues": [
        "newBank.vaultToken: Invalid string: must match pattern /^tok_[\\w-]{6,80}$/"
      ]
    }
  88. · GET app request /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/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/67066cfdc51c45e0d93acd7086ed90f1f77c38063b3ecaab/verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/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_1d352154f9af49b5b8738b1d015ff7e8' \
      --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:13:16.590143+00:00.

    Recorded request headers

    {
      "accept": "*/*",
      "user-agent": "python-httpx/0.28.1",
      "host": "fetchsandbox.com",
      "x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
      "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.