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.
Failing
Each check was set up before the run. This shows what we tried, what came back, and which rule it was checked against.
This receipt covers the checks in this run only. Passing all checks does not certify the whole app as production-ready.
Test scenarios
A bank-change request is recorded for AP and posted
baselineWhat 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.
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 reference
baselineApp 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.
Payments to the supplier are held as soon as the request arrives
payments_held_while_verifyingWhat we probed
Payments to the supplier are held as soon as the request arrives
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- Payments to the supplier are held as soon as the request arrives
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/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/payments_held_while_verifying/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "680",
"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": "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.
03GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs
This request had no body.
Server returned
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"
}
]
}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/payments_held_while_verifying/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/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.
04POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "680",
"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": "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.
05GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/payments_held_while_verifying/runs
This request had no body.
Server returned
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"
}
]
}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/payments_held_while_verifying/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/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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
payments_held_while_verifyingApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
Payments to the supplier are held as soon as the request arrives
expected exactly 1, found 0; stable under 2 repeats (0)
- 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-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"
}
}Server returned
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"
}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": "317",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "250",
"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-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.
AP's callback goes to the phone number on file, never one from the request
callback_to_number_on_fileWhat we probed
AP's callback goes to the phone number on file, never one from the request
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- AP's callback goes to the phone number on file, never one from the request
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/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/callback_to_number_on_file/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "671",
"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": "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.
03GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs
This request had no body.
Server returned
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"
}
]
}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/callback_to_number_on_file/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/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.
04POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "671",
"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": "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.
05GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_to_number_on_file/runs
This request had no body.
Server returned
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"
}
]
}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/callback_to_number_on_file/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/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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
callback_to_number_on_fileApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
AP's callback goes to the phone number on file, never one from the request
expected exactly 1, found 0; stable under 2 repeats (0)
- 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-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"
}
}Server returned
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"
}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": "311",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "247",
"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-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.
The person who entered the change can't confirm its callback
submitter_cannot_confirmWhat we probed
The person who entered the change can't confirm its callback
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- The person who entered the change can't confirm its callback
- Actual
- app action expected HTTP 403, received 404
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/submitter_cannot_confirm/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/submitter_cannot_confirm/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/submitter_cannot_confirm/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "665",
"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": "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.
03POST /invocations404
We sent
POST /invocations
{
"action": "signal",
"runId": "submitter-cannot-confirm-vr_1d352154f9af49b5b8738b1d015ff7e8",
"actionId": "ap.confirm_callback:BC-submitter-cannot-confirm",
"value": "approve",
"userId": "U_AP_CLERK"
}Server returned
HTTP 404
{
"result": "no_such_signal",
"runId": "submitter-cannot-confirm-vr_1d352154f9af49b5b8738b1d015ff7e8",
"actionId": "ap.confirm_callback:BC-submitter-cannot-confirm"
}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": "191",
"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": "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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
submitter_cannot_confirmApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
The person who entered the change can't confirm its callback
app action expected HTTP 403, received 404
- 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-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"
}
}Server returned
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"
}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": "307",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "245",
"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-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.
The AP verifier who confirmed the callback can't also give the treasury approval
verifier_cannot_also_approveWhat we probed
The AP verifier who confirmed the callback can't also give the treasury approval
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocationsPOST /invocations
Expected vs actual
- Expected
- The AP verifier who confirmed the callback can't also give the treasury approval
- Actual
- app action expected HTTP 200, received 404
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/verifier_cannot_also_approve/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/verifier_cannot_also_approve/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/verifier_cannot_also_approve/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "677",
"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": "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.
03POST /invocations404
We sent
POST /invocations
{
"action": "signal",
"runId": "verifier-cannot-also-approve-vr_1d352154f9af49b5b8738b1d015ff7e8",
"actionId": "ap.confirm_callback:BC-verifier-cannot-also-approve",
"value": "approve",
"userId": "U_AP_VERIFIER"
}Server returned
HTTP 404
{
"result": "no_such_signal",
"runId": "verifier-cannot-also-approve-vr_1d352154f9af49b5b8738b1d015ff7e8",
"actionId": "ap.confirm_callback:BC-verifier-cannot-also-approve"
}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": "202",
"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": "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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
verifier_cannot_also_approveApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
The AP verifier who confirmed the callback can't also give the treasury approval
app action expected HTTP 200, received 404
- 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-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"
}
}Server returned
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"
}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": "315",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "249",
"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-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.
Callback confirmed by AP and approved by treasury: the new bank details apply and the hold is released
two_person_rule_applies_changeWhat we probed
Callback confirmed by AP and approved by treasury: the new bank details apply and the hold is released
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocationsPOST /invocations
Expected vs actual
- Expected
- Callback confirmed by AP and approved by treasury: the new bank details apply and the hold is released
- Actual
- app action expected HTTP 200, received 404
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/two_person_rule_applies_change/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/two_person_rule_applies_change/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/two_person_rule_applies_change/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "683",
"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": "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.
03POST /invocations404
We sent
POST /invocations
{
"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"
}Server returned
HTTP 404
{
"result": "no_such_signal",
"runId": "two-person-rule-applies-change-vr_1d352154f9af49b5b8738b1d015ff7e8",
"actionId": "ap.confirm_callback:BC-two-person-rule-applies-change"
}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": "206",
"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": "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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
two_person_rule_applies_changeApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
Callback confirmed by AP and approved by treasury: the new bank details apply and the hold is released
app action expected HTTP 200, received 404
- 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-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"
}
}Server returned
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"
}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": "319",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "251",
"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-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.
A treasury rejection keeps the account on file and releases the hold
treasury_rejection_keeps_old_accountWhat we probed
A treasury rejection keeps the account on file and releases the hold
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocationsPOST /invocations
Expected vs actual
- Expected
- A treasury rejection keeps the account on file and releases the hold
- Actual
- app action expected HTTP 200, received 404
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/treasury_rejection_keeps_old_account/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/treasury_rejection_keeps_old_account/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/treasury_rejection_keeps_old_account/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "701",
"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": "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.
03POST /invocations404
We sent
POST /invocations
{
"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"
}Server returned
HTTP 404
{
"result": "no_such_signal",
"runId": "treasury-rejection-keeps-old-account-vr_1d352154f9af49b5b8738b1d015ff7e8",
"actionId": "ap.confirm_callback:BC-treasury-rejection-keeps-old-account"
}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": "218",
"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": "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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
treasury_rejection_keeps_old_accountApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
A treasury rejection keeps the account on file and releases the hold
app action expected HTTP 200, received 404
- 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-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"
}
}Server returned
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"
}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": "331",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "257",
"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-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.
Five days without a confirmed callback: the change is not applied (needs the verifier to advance the runtime's clock)
callback_deadline_rejectsWhat we probed
Five days without a confirmed callback: the change is not applied (needs the verifier to advance the runtime's clock)
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- Five days without a confirmed callback: the change is not applied (needs the verifier to advance the runtime's clock)
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/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/callback_deadline_rejects/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "668",
"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": "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.
03POST /invocations200
We sent
POST /invocations
{
"action": "tick"
}Server returned
HTTP 200
{
"woken": []
}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": "17",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "12"
}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": "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.
04GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs
This request had no body.
Server returned
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"
}
]
}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/callback_deadline_rejects/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/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.
05POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "668",
"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": "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.
06POST /invocations200
We sent
POST /invocations
{
"action": "tick"
}Server returned
HTTP 200
{
"woken": []
}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": "17",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "12"
}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": "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.
07GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/callback_deadline_rejects/runs
This request had no body.
Server returned
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"
}
]
}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/callback_deadline_rejects/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/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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
callback_deadline_rejectsApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
Five days without a confirmed callback: the change is not applied (needs the verifier to advance the runtime's clock)
expected exactly 1, found 0; stable under 2 repeats (0)
- 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-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"
}
}Server returned
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"
}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": "309",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "246",
"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-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.
The linked account's holder name is matched to the supplier's legal name
ownership_checked_with_plaidWhat we probed
The linked account's holder name is matched to the supplier's legal name
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- The linked account's holder name is matched to the supplier's legal name
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/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/ownership_checked_with_plaid/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "677",
"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": "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.
03GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs
This request had no body.
Server returned
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"
}
]
}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/ownership_checked_with_plaid/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/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.
04POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "677",
"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": "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.
05GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/ownership_checked_with_plaid/runs
This request had no body.
Server returned
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"
}
]
}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/ownership_checked_with_plaid/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/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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
ownership_checked_with_plaidApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
The linked account's holder name is matched to the supplier's legal name
expected exactly 1, found 0; stable under 2 repeats (0)
- 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-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"
}
}Server returned
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"
}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": "315",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "249",
"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-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.
The supplier is re-screened against sanctions lists before anything changes
sanctions_screenedWhat we probed
The supplier is re-screened against sanctions lists before anything changes
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- The supplier is re-screened against sanctions lists before anything changes
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/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/sanctions_screened/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "647",
"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": "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.
03GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs
This request had no body.
Server returned
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"
}
]
}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/sanctions_screened/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/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.
04POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "647",
"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": "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.
05GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/sanctions_screened/runs
This request had no body.
Server returned
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"
}
]
}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/sanctions_screened/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/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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
sanctions_screenedApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
The supplier is re-screened against sanctions lists before anything changes
expected exactly 1, found 0; stable under 2 repeats (0)
- 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-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"
}
}Server returned
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"
}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": "295",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "239",
"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-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.
When the vendor record can't be read nothing changes and AP is told
unreadable_vendor_blocksWhat we probed
When the vendor record can't be read nothing changes and AP is told
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- When the vendor record can't be read nothing changes and AP is told
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/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/unreadable_vendor_blocks/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "665",
"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": "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.
03GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs
This request had no body.
Server returned
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"
}
]
}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/unreadable_vendor_blocks/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/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.
04POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "665",
"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": "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.
05GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/unreadable_vendor_blocks/runs
This request had no body.
Server returned
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"
}
]
}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/unreadable_vendor_blocks/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/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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
unreadable_vendor_blocksApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
When the vendor record can't be read nothing changes and AP is told
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-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"
}
}Server returned
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"
}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": "307",
"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-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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"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
}Server returned
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"
}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": "245",
"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-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.
Slack rate limiting loses the alert only; the record is kept
slack_rate_limitedWhat we probed
Slack rate limiting loses the alert only; the record is kept
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
Declared slack fault: rate_limited.
POST /invocations
Expected vs actual
- Expected
- Slack rate limiting loses the alert only; the record is kept
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/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/slack_rate_limited/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/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.
02POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "647",
"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": "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.
03slack · POST /api/chat.postMessage429
We sent
POST /api/chat.postMessage
{
"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
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"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"
}{
"retry-after": "30"
}Rebuilt curl
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.
04slack · POST /api/chat.postMessage429
We sent
POST /api/chat.postMessage
{
"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
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"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"
}{
"retry-after": "30"
}Rebuilt curl
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.
05slack · POST /api/chat.postMessage429
We sent
POST /api/chat.postMessage
{
"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
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"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"
}{
"retry-after": "30"
}Rebuilt curl
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.
06GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs
This request had no body.
Server returned
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"
}
]
}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/slack_rate_limited/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/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.
07POST /invocations200
We sent
POST /invocations
{
"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"
}
}Server returned
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
}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": "647",
"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": "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.
08GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/slack_rate_limited/runs
This request had no body.
Server returned
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"
}
]
}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/slack_rate_limited/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/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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
slack_rate_limitedApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
Slack rate limiting loses the alert only; the record is kept
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 (4)
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-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"
}
}Server returned
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"
}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": "295",
"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-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.
slack · POST /api/chat.postMessage · HTTP 429
We sent
POST /api/chat.postMessage
{
"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
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}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": "239",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
"content-type": "application/json; charset=utf-8"
}{
"retry-after": "30"
}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-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.
slack · POST /api/chat.postMessage · HTTP 429
We sent
POST /api/chat.postMessage
{
"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
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}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": "239",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
"content-type": "application/json; charset=utf-8"
}{
"retry-after": "30"
}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-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.
slack · POST /api/chat.postMessage · HTTP 429
We sent
POST /api/chat.postMessage
{
"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
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}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": "239",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_1d352154f9af49b5b8738b1d015ff7e8",
"content-type": "application/json; charset=utf-8"
}{
"retry-after": "30"
}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-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.
Untokenised bank details are rejected before any agent runs
invalid_input_rejectedWhat we probed
Untokenised bank details are rejected before any agent runs
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- Untokenised bank details are rejected before any agent runs
- Actual
- expected exactly 0, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/invalid_input_rejected/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/invalid_input_rejected/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/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.
02POST /invocations400
We sent
POST /invocations
{
"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"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"newBank.vaultToken: Invalid string: must match pattern /^tok_[\\w-]{6,80}$/"
]
}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": "589",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "114"
}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": "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.
03GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/invalid_input_rejected/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/invalid_input_rejected/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/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.
04POST /invocations400
We sent
POST /invocations
{
"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"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"newBank.vaultToken: Invalid string: must match pattern /^tok_[\\w-]{6,80}$/"
]
}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": "589",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "114"
}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": "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.
05GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_1d352154f9af49b5b8738b1d015ff7e8/cases/invalid_input_rejected/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/invalid_input_rejected/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/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.
Evidence
- Run
vr_1d352154f9af49b5b8738b1d015ff7e8- App version (declared)
acme-ops-supplier-bank-chang…- Source receipt
- Source receipt ↗
Technical reference
invalid_input_rejectedApp version (declared): acme-ops-supplier-bank-change-1.0.0-93f319c
Untokenised bank details are rejected before any agent runs
expected exactly 0, found 0; stable under 2 repeats (0)
- 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.
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)
- · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } ] } - · 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 } - · 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" } ] } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } ] } - · 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 } - · 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" } ] } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } ] } - · 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 } - · 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" } ] } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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": [] } - · 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" } ] } - · 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 } - · 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": [] } - · 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" } ] } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } ] } - · 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 } - · 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" } ] } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } ] } - · 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 } - · 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" } ] } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } ] } - · 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 } - · 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" } ] } - · 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": [] } - · 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 } - · 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" } - · 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" } - · 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" } - · 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" } - · 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" } - · 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" } - · 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" } - · 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" } ] } - · 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 } - · 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" } ] } - · 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": [] } - · 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}$/" ] } - · 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": [] } - · 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}$/" ] } - · 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.