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
An AP batch posts its outcome to the AP channel
baselineWhat we probed
An AP batch posts its outcome to the AP channel
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- An AP batch posts its outcome to the AP channel
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-baseline",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "baseline"
}
}Server returned
HTTP 200
{
"runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "baseline"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "179YXXRG5Y.KUM6OA",
"appliedAt": "2026-10-22T19:06:22.684Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "92371fd31fded8a3752b5be3db9e4e770771267c4b4c38046a2f429318d7bf2e"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:22.476Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:22.478Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:22.481Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:22.685Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:22.686Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:22.476Z",
"updatedAt": "2026-10-22T19:06:22.686Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "346",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-baseline",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "baseline"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "179YXXRG5Y.KUM6OA",
"appliedAt": "2026-10-22T19:06:22.684Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "92371fd31fded8a3752b5be3db9e4e770771267c4b4c38046a2f429318d7bf2e"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:22.476Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:22.478Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:22.481Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:22.685Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:22.686Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:22.476Z",
"updatedAt": "2026-10-22T19:06:22.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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-baseline",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "baseline"
}
}Server returned
HTTP 200
{
"runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "baseline"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "179YXXRG5Y.KUM6OA",
"appliedAt": "2026-10-22T19:06:22.684Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "4e944d01a6461d69712a439c3fb852716f28180f7d2fe7f8e6542ac65888f920"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:22.476Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:22.478Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:22.481Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:22.685Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:22.686Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:23.297Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:22.476Z",
"updatedAt": "2026-10-22T19:06:23.297Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "346",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-baseline",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "baseline"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "179YXXRG5Y.KUM6OA",
"appliedAt": "2026-10-22T19:06:22.684Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "4e944d01a6461d69712a439c3fb852716f28180f7d2fe7f8e6542ac65888f920"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:22.476Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:22.478Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:22.481Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:22.685Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:22.686Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:23.297Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:22.476Z",
"updatedAt": "2026-10-22T19:06:23.297Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
baselineApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
An AP batch posts its outcome to the AP channel
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 (1)
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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-baseline: bills could not be read; nothing was approved.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0FINANCE01",
"message": {
"bot_id": "bot_2e3208ad64844196b3950e8722",
"client_msg_id": "cli_b764fc8c31f54ce9bf00788865",
"name": "item-0f37c8",
"old_name": "Sample Old",
"parent_user_id": "par_625304a34628465fb18c5a0e7d",
"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": "179YXXRG5Y.KUM6OA"
}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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "153",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-baseline: bills could not be read; nothing was approved.",
"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.
Pending bills, their purchase orders and receipts are read from the ERP
bills_read_from_erpWhat we probed
Pending bills, their purchase orders and receipts are read from the ERP
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- Pending bills, their purchase orders and receipts are read from the ERP
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-bills-read-from-erp",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "bills_read_from_erp"
}
}Server returned
HTTP 200
{
"runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "bills_read_from_erp"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17VPMJ4SXI.1CEVLF",
"appliedAt": "2026-10-22T19:06:24.413Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "64a7148e997791b70b94fb7e0376fe61a08713fa949cfc8e887502faa49c680b"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:24.199Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:24.200Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:24.202Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:24.414Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:24.415Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:24.199Z",
"updatedAt": "2026-10-22T19:06:24.416Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "379",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-bills-read-from-erp",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "bills_read_from_erp"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "bills_read_from_erp"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17VPMJ4SXI.1CEVLF",
"appliedAt": "2026-10-22T19:06:24.413Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "64a7148e997791b70b94fb7e0376fe61a08713fa949cfc8e887502faa49c680b"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:24.199Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:24.200Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:24.202Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:24.414Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:24.415Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:24.199Z",
"updatedAt": "2026-10-22T19:06:24.416Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-bills-read-from-erp",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "bills_read_from_erp"
}
}Server returned
HTTP 200
{
"runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "bills_read_from_erp"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17VPMJ4SXI.1CEVLF",
"appliedAt": "2026-10-22T19:06:24.413Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "de767ddde2c4e0d34ca2e03ac769c91d3682293a75f0804895a1e952f24945da"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:24.199Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:24.200Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:24.202Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:24.414Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:24.415Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:25.028Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:24.199Z",
"updatedAt": "2026-10-22T19:06:25.028Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "379",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-bills-read-from-erp",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "bills_read_from_erp"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "bills_read_from_erp"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17VPMJ4SXI.1CEVLF",
"appliedAt": "2026-10-22T19:06:24.413Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "de767ddde2c4e0d34ca2e03ac769c91d3682293a75f0804895a1e952f24945da"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:24.199Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:24.200Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:24.202Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:24.414Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:24.415Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:25.028Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:24.199Z",
"updatedAt": "2026-10-22T19:06:25.028Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
bills_read_from_erpApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
Pending bills, their purchase orders and receipts are read from the ERP
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 (1)
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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-bills-read-from-erp: bills could not be read; nothing was approved.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0FINANCE01",
"message": {
"bot_id": "bot_b8e8665d4ec748729f9417d37d",
"client_msg_id": "cli_e763c2c8d17b4d53a34c2a53d8",
"name": "item-b32a52",
"old_name": "Sample Old",
"parent_user_id": "par_86dc4bd5f094488eb4a962c4f5",
"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": "17VPMJ4SXI.1CEVLF"
}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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "164",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-bills-read-from-erp: bills could not be read; nothing was approved.",
"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 bill that matches its PO and receipts within the limit is approved without a person
clean_match_auto_approvedWhat we probed
A bill that matches its PO and receipts within the limit is approved without a person
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A bill that matches its PO and receipts within the limit is approved without a person
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-clean-match-auto-approved",
"billIds": [
"11"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "clean_match_auto_approved"
}
}Server returned
HTTP 200
{
"runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "clean_match_auto_approved"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17G6QIUBUX.HKL8RR",
"appliedAt": "2026-10-22T19:06:26.089Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "8f1d5821c777d3f6aaab82db667e49584d07e8e6ce7b62daef2138e9125c71bd"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:25.897Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:25.899Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:25.901Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:26.089Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:26.092Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:25.897Z",
"updatedAt": "2026-10-22T19:06:26.092Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "382",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-clean-match-auto-approved",
"billIds": [
"11"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "clean_match_auto_approved"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "clean_match_auto_approved"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17G6QIUBUX.HKL8RR",
"appliedAt": "2026-10-22T19:06:26.089Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "8f1d5821c777d3f6aaab82db667e49584d07e8e6ce7b62daef2138e9125c71bd"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:25.897Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:25.899Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:25.901Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:26.089Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:26.092Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:25.897Z",
"updatedAt": "2026-10-22T19:06:26.092Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-clean-match-auto-approved",
"billIds": [
"11"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "clean_match_auto_approved"
}
}Server returned
HTTP 200
{
"runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "clean_match_auto_approved"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17G6QIUBUX.HKL8RR",
"appliedAt": "2026-10-22T19:06:26.089Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "3329a066fcf371d07e5343851428405bfbdddf9ec302a622fd9be8815408bbf3"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:25.897Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:25.899Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:25.901Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:26.089Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:26.092Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:26.717Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:25.897Z",
"updatedAt": "2026-10-22T19:06:26.717Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "382",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-clean-match-auto-approved",
"billIds": [
"11"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "clean_match_auto_approved"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "clean_match_auto_approved"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17G6QIUBUX.HKL8RR",
"appliedAt": "2026-10-22T19:06:26.089Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "3329a066fcf371d07e5343851428405bfbdddf9ec302a622fd9be8815408bbf3"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:25.897Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:25.899Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:25.901Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:26.089Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:26.092Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:26.717Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:25.897Z",
"updatedAt": "2026-10-22T19:06:26.717Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
clean_match_auto_approvedApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
A bill that matches its PO and receipts within the limit is approved without a person
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 (1)
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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-clean-match-auto-approved: bills could not be read; nothing was approved.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0FINANCE01",
"message": {
"bot_id": "bot_4038bd7c6baa4a059fae20783c",
"client_msg_id": "cli_7071ac712c4b47eea7e00e2472",
"name": "item-83c509",
"old_name": "Sample Old",
"parent_user_id": "par_af9ecebf5d824a339c476bf1e8",
"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": "17G6QIUBUX.HKL8RR"
}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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "170",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-clean-match-auto-approved: bills could not be read; nothing was approved.",
"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 price variance within tolerance waits for an AP approver
variance_needs_ap_approvalWhat we probed
A price variance within tolerance waits for an AP approver
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A price variance within tolerance waits for an AP approver
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-variance-needs-ap-approval",
"billIds": [
"12"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "variance_needs_ap_approval"
}
}Server returned
HTTP 200
{
"runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "variance_needs_ap_approval"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17XRLJK7UL.44ET6X",
"appliedAt": "2026-10-22T19:06:27.765Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "f06601a447ca18e1e52ad6c4628f1af24bcf3eeaa16695e397e862405ca30479"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:27.569Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:27.570Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:27.573Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:27.765Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:27.767Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:27.569Z",
"updatedAt": "2026-10-22T19:06:27.767Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "385",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-variance-needs-ap-approval",
"billIds": [
"12"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "variance_needs_ap_approval"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "variance_needs_ap_approval"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17XRLJK7UL.44ET6X",
"appliedAt": "2026-10-22T19:06:27.765Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "f06601a447ca18e1e52ad6c4628f1af24bcf3eeaa16695e397e862405ca30479"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:27.569Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:27.570Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:27.573Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:27.765Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:27.767Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:27.569Z",
"updatedAt": "2026-10-22T19:06:27.767Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-variance-needs-ap-approval",
"billIds": [
"12"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "variance_needs_ap_approval"
}
}Server returned
HTTP 200
{
"runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "variance_needs_ap_approval"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17XRLJK7UL.44ET6X",
"appliedAt": "2026-10-22T19:06:27.765Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "a881370348612c6ad0bf66291d707df0a1a3d4ebe915493aeea81b583a085366"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:27.569Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:27.570Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:27.573Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:27.765Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:27.767Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:28.371Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:27.569Z",
"updatedAt": "2026-10-22T19:06:28.371Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "385",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-variance-needs-ap-approval",
"billIds": [
"12"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "variance_needs_ap_approval"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "variance_needs_ap_approval"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17XRLJK7UL.44ET6X",
"appliedAt": "2026-10-22T19:06:27.765Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "a881370348612c6ad0bf66291d707df0a1a3d4ebe915493aeea81b583a085366"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:27.569Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:27.570Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:27.573Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:27.765Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:27.767Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:28.371Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:27.569Z",
"updatedAt": "2026-10-22T19:06:28.371Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
variance_needs_ap_approvalApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
A price variance within tolerance waits for an AP approver
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 (1)
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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-variance-needs-ap-approval: bills could not be read; nothing was approved.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0FINANCE01",
"message": {
"bot_id": "bot_649e164c487a440bbbcc57bfe7",
"client_msg_id": "cli_f9520bd6ec814131912740ff21",
"name": "item-3266d7",
"old_name": "Sample Old",
"parent_user_id": "par_c873259e2e9441649dbc25f0c5",
"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": "17XRLJK7UL.44ET6X"
}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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "171",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-variance-needs-ap-approval: bills could not be read; nothing was approved.",
"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 clerk who entered a bill can't approve its variance
entering_clerk_cannot_approveWhat we probed
The clerk who entered a bill can't approve its variance
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- The clerk who entered a bill can't approve its variance
- Actual
- app action expected HTTP 403, received 404
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/entering_clerk_cannot_approve/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/entering_clerk_cannot_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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/entering_clerk_cannot_approve/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/entering_clerk_cannot_approve/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-entering-clerk-cannot-approve",
"billIds": [
"12"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "entering_clerk_cannot_approve"
}
}Server returned
HTTP 200
{
"runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "entering_clerk_cannot_approve"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "172XYNQSHX.LPURFN",
"appliedAt": "2026-10-22T19:06:29.414Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "8fd2bee16d1c0d65463b19c7213867a961839ffab4b0415e797d621bf17140ce"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:29.231Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:29.232Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:29.235Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:29.415Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:29.417Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:29.231Z",
"updatedAt": "2026-10-22T19:06:29.417Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "394",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-entering-clerk-cannot-approve",
"billIds": [
"12"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "entering_clerk_cannot_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": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176",
"actionId": "netsuite.approve_bill:12",
"value": "approve",
"userId": "U_AP_CLERK"
}Server returned
HTTP 404
{
"result": "no_such_signal",
"runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176",
"actionId": "netsuite.approve_bill:12"
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "173",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "signal",
"runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176",
"actionId": "netsuite.approve_bill:12",
"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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
entering_clerk_cannot_approveApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
The clerk who entered a bill can't approve its variance
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 (1)
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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-entering-clerk-cannot-approve: bills could not be read; nothing was approved.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0FINANCE01",
"message": {
"bot_id": "bot_b1c6947d802942c5ab68a3f0d5",
"client_msg_id": "cli_2246020c0a1441b2b8f696e4f1",
"name": "item-6f892b",
"old_name": "Sample Old",
"parent_user_id": "par_08914d1a7a0e4a49b20a46befe",
"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": "172XYNQSHX.LPURFN"
}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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "174",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-entering-clerk-cannot-approve: bills could not be read; nothing was approved.",
"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 bill for more than was received is put on payment hold and routed to a buyer
over_billed_heldWhat we probed
A bill for more than was received is put on payment hold and routed to a buyer
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A bill for more than was received is put on payment hold and routed to a buyer
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-over-billed-held",
"billIds": [
"13"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "over_billed_held"
}
}Server returned
HTTP 200
{
"runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "over_billed_held"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "172RSHEFWK.1EA605",
"appliedAt": "2026-10-22T19:06:30.392Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "7665194e3a67c12ce0125edcb26df647cd0ff2aded8796c06c85506f393fd818"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:30.213Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:30.214Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:30.216Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:30.392Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:30.394Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:30.213Z",
"updatedAt": "2026-10-22T19:06:30.394Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "355",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-over-billed-held",
"billIds": [
"13"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "over_billed_held"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "over_billed_held"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "172RSHEFWK.1EA605",
"appliedAt": "2026-10-22T19:06:30.392Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "7665194e3a67c12ce0125edcb26df647cd0ff2aded8796c06c85506f393fd818"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:30.213Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:30.214Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:30.216Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:30.392Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:30.394Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:30.213Z",
"updatedAt": "2026-10-22T19:06:30.394Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-over-billed-held",
"billIds": [
"13"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "over_billed_held"
}
}Server returned
HTTP 200
{
"runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "over_billed_held"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "172RSHEFWK.1EA605",
"appliedAt": "2026-10-22T19:06:30.392Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "933ca69152d427ba77b0a5d799df4b9549c4767795959f368f51e1880ead5631"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:30.213Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:30.214Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:30.216Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:30.392Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:30.394Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:30.986Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:30.213Z",
"updatedAt": "2026-10-22T19:06:30.986Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "355",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-over-billed-held",
"billIds": [
"13"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "over_billed_held"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "over_billed_held"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "172RSHEFWK.1EA605",
"appliedAt": "2026-10-22T19:06:30.392Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "933ca69152d427ba77b0a5d799df4b9549c4767795959f368f51e1880ead5631"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:30.213Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:30.214Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:30.216Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:30.392Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:30.394Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:30.986Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:30.213Z",
"updatedAt": "2026-10-22T19:06:30.986Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
over_billed_heldApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
A bill for more than was received is put on payment hold and routed to a buyer
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 (1)
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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-over-billed-held: bills could not be read; nothing was approved.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0FINANCE01",
"message": {
"bot_id": "bot_03b2ca2d0ed24e1aaa95767ac7",
"client_msg_id": "cli_c4ed5e9e761e4786bdb52df78f",
"name": "item-fc22c6",
"old_name": "Sample Old",
"parent_user_id": "par_a008cc4f555a48dbb8076b0d37",
"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": "172RSHEFWK.1EA605"
}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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "161",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-over-billed-held: bills could not be read; nothing was approved.",
"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.
Bills sharing a vendor invoice number are held, never approved
duplicate_never_approvedWhat we probed
Bills sharing a vendor invoice number are held, never approved
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- Bills sharing a vendor invoice number are held, never approved
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-duplicate-never-approved",
"billIds": [
"11",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "duplicate_never_approved"
}
}Server returned
HTTP 200
{
"runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "duplicate_never_approved"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17EDUMK2S7.61AVDL",
"appliedAt": "2026-10-22T19:06:32.014Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "cd406031b779aa5a75a18360e68d477982ad62e4b4f38a6ad46b8dd51fad8174"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:31.833Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:31.834Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:31.838Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:32.014Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:32.016Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:31.833Z",
"updatedAt": "2026-10-22T19:06:32.016Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "384",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-duplicate-never-approved",
"billIds": [
"11",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "duplicate_never_approved"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "duplicate_never_approved"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17EDUMK2S7.61AVDL",
"appliedAt": "2026-10-22T19:06:32.014Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "cd406031b779aa5a75a18360e68d477982ad62e4b4f38a6ad46b8dd51fad8174"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:31.833Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:31.834Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:31.838Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:32.014Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:32.016Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:31.833Z",
"updatedAt": "2026-10-22T19:06:32.016Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-duplicate-never-approved",
"billIds": [
"11",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "duplicate_never_approved"
}
}Server returned
HTTP 200
{
"runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "duplicate_never_approved"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17EDUMK2S7.61AVDL",
"appliedAt": "2026-10-22T19:06:32.014Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "069fb813a578b57fc4792546e12f7d8b0c7e1e4e6942828377f63e1cc3e3053b"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:31.833Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:31.834Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:31.838Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:32.014Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:32.016Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:32.608Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:31.833Z",
"updatedAt": "2026-10-22T19:06:32.608Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "384",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-duplicate-never-approved",
"billIds": [
"11",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "duplicate_never_approved"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "duplicate_never_approved"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17EDUMK2S7.61AVDL",
"appliedAt": "2026-10-22T19:06:32.014Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "069fb813a578b57fc4792546e12f7d8b0c7e1e4e6942828377f63e1cc3e3053b"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:31.833Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:31.834Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:31.838Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:32.014Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:32.016Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:32.608Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:31.833Z",
"updatedAt": "2026-10-22T19:06:32.608Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
duplicate_never_approvedApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
Bills sharing a vendor invoice number are held, never approved
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 (1)
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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-duplicate-never-approved: bills could not be read; nothing was approved.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0FINANCE01",
"message": {
"bot_id": "bot_f4e3f8fa4f7942fb954d8d90fa",
"client_msg_id": "cli_8e60121e35364230b8247ba415",
"name": "item-c9cf86",
"old_name": "Sample Old",
"parent_user_id": "par_6b76b95bdf514637877690886d",
"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": "17EDUMK2S7.61AVDL"
}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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "169",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-duplicate-never-approved: bills could not be read; nothing was approved.",
"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 bills can't be read, nothing is approved and AP is told
erp_unreadable_approves_nothingWhat we probed
When bills can't be read, nothing is approved 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 bills can't be read, nothing is approved and AP is told
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-erp-unreadable-approves-nothing",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "erp_unreadable_approves_nothing"
}
}Server returned
HTTP 200
{
"runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "erp_unreadable_approves_nothing"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17QUUP636G.5FRHJQ",
"appliedAt": "2026-10-22T19:06:33.636Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "746fb57b9798c848e681a9e065156a796ff22e7fb13f03a942028be9a9690187"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:33.430Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:33.431Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:33.434Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:33.636Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:33.638Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:33.430Z",
"updatedAt": "2026-10-22T19:06:33.638Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "415",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-erp-unreadable-approves-nothing",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "erp_unreadable_approves_nothing"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "erp_unreadable_approves_nothing"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17QUUP636G.5FRHJQ",
"appliedAt": "2026-10-22T19:06:33.636Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "746fb57b9798c848e681a9e065156a796ff22e7fb13f03a942028be9a9690187"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:33.430Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:33.431Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:33.434Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:33.636Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:33.638Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T19:06:33.430Z",
"updatedAt": "2026-10-22T19:06:33.638Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-erp-unreadable-approves-nothing",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "erp_unreadable_approves_nothing"
}
}Server returned
HTTP 200
{
"runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "erp_unreadable_approves_nothing"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17QUUP636G.5FRHJQ",
"appliedAt": "2026-10-22T19:06:33.636Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "4f3526ad3a128456f1443c0114448ba805608c2fd5adcdc5d58f0706603babd6"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:33.430Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:33.431Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:33.434Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:33.636Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:33.638Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:34.242Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:33.430Z",
"updatedAt": "2026-10-22T19:06:34.243Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "415",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-erp-unreadable-approves-nothing",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "erp_unreadable_approves_nothing"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "erp_unreadable_approves_nothing"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"ref": "17QUUP636G.5FRHJQ",
"appliedAt": "2026-10-22T19:06:33.636Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "4f3526ad3a128456f1443c0114448ba805608c2fd5adcdc5d58f0706603babd6"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:33.430Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:33.431Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:33.434Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:33.636Z",
"msg": "slack.post_batch: applied"
},
{
"at": "2026-10-22T19:06:33.638Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T19:06:34.242Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:33.430Z",
"updatedAt": "2026-10-22T19:06:34.243Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
erp_unreadable_approves_nothingApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
When bills can't be read, nothing is approved 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 (1)
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.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-erp-unreadable-approves-nothing: bills could not be read; nothing was approved.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0FINANCE01",
"message": {
"bot_id": "bot_ae5c76153a2d432380a6b74178",
"client_msg_id": "cli_a1019b4fb3894f12bd5998d305",
"name": "item-49fd2d",
"old_name": "Sample Old",
"parent_user_id": "par_8c2a6c13abb94fa2aa6a2a4910",
"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": "17QUUP636G.5FRHJQ"
}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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "176",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-erp-unreadable-approves-nothing: bills could not be read; nothing was approved.",
"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 summary only
slack_rate_limitedWhat we probed
Slack rate limiting loses the summary only
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 summary only
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/slack_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-slack-rate-limited",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "slack_rate_limited"
}
}Server returned
HTTP 200
{
"runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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": "failed",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "slack_rate_limited"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "failed",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
"errorCode": "slack:ratelimited",
"reconciled": null
}
],
"counts": {
"applied": 0,
"failed": 1,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "8396a6bb08d8bb3b9e74af9eb99aaea13bda33b9e63e969acbfaafd2c5458ba9"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:35.078Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:35.079Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:35.080Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:43.587Z",
"msg": "slack.post_batch: failed (slack:ratelimited)"
},
{
"at": "2026-10-22T19:06:43.590Z",
"msg": "done (failed)"
}
],
"createdAt": "2026-10-22T19:06:35.078Z",
"updatedAt": "2026-10-22T19:06:43.590Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "376",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-slack-rate-limited",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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": "163",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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": "163",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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": "163",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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_fbd12df7d3c54163a3711aaf0af39176/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/slack_rate_limited/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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": "failed",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "slack_rate_limited"
},
"duplicateStarts": 0,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "failed",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
"errorCode": "slack:ratelimited",
"reconciled": null
}
],
"counts": {
"applied": 0,
"failed": 1,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 4,
"head": "8396a6bb08d8bb3b9e74af9eb99aaea13bda33b9e63e969acbfaafd2c5458ba9"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:35.078Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:35.079Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:35.080Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:43.587Z",
"msg": "slack.post_batch: failed (slack:ratelimited)"
},
{
"at": "2026-10-22T19:06:43.590Z",
"msg": "done (failed)"
}
],
"createdAt": "2026-10-22T19:06:35.078Z",
"updatedAt": "2026-10-22T19:06:43.590Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/slack_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-slack-rate-limited",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "slack_rate_limited"
}
}Server returned
HTTP 200
{
"runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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": "failed",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "slack_rate_limited"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "failed",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
"errorCode": "slack:ratelimited",
"reconciled": null
}
],
"counts": {
"applied": 0,
"failed": 1,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "8ecea1967b6776d4a5790ba06bcf7e5faa965f2278f82d9747aa870c1c77a650"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:35.078Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:35.079Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:35.080Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:43.587Z",
"msg": "slack.post_batch: failed (slack:ratelimited)"
},
{
"at": "2026-10-22T19:06:43.590Z",
"msg": "done (failed)"
},
{
"at": "2026-10-22T19:06:44.180Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:35.078Z",
"updatedAt": "2026-10-22T19:06:44.180Z",
"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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "376",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "AP-slack-rate-limited",
"billIds": [
"11",
"12",
"13",
"14"
],
"apChannel": "C0FINANCE01",
"approvers": [
"U_AP_LEAD",
"U_AP_CLERK"
],
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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_fbd12df7d3c54163a3711aaf0af39176/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/slack_rate_limited/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176",
"workflow": "invoice-three-way-match",
"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": "failed",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "slack_rate_limited"
},
"duplicateStarts": 1,
"agents": [
{
"name": "match-engine",
"status": "skipped",
"error": "not configured: netsuite",
"errorCode": "not_configured",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_batch",
"kind": "slack.post_batch",
"provider": "slack",
"agent": "match-engine",
"gate": "auto",
"status": "failed",
"summary": {
"channel": "C0FINANCE01",
"blocked": true
},
"attempts": 1,
"error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
"errorCode": "slack:ratelimited",
"reconciled": null
}
],
"counts": {
"applied": 0,
"failed": 1,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": {
"seq": 5,
"head": "8ecea1967b6776d4a5790ba06bcf7e5faa965f2278f82d9747aa870c1c77a650"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:06:35.078Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:06:35.079Z",
"msg": "agents: match-engine=skipped"
},
{
"at": "2026-10-22T19:06:35.080Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:06:43.587Z",
"msg": "slack.post_batch: failed (slack:ratelimited)"
},
{
"at": "2026-10-22T19:06:43.590Z",
"msg": "done (failed)"
},
{
"at": "2026-10-22T19:06:44.180Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:06:35.078Z",
"updatedAt": "2026-10-22T19:06:44.180Z"
}
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/slack_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
slack_rate_limitedApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
Slack rate limiting loses the summary only
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 (3)
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.
slack · POST /api/chat.postMessage · HTTP 429
We sent
POST /api/chat.postMessage
{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "163",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "163",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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/5a2eacd142/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "163",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"content-type": "application/json; charset=utf-8"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0FINANCE01",
"text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.",
"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 malformed batch id is rejected before any agent runs
invalid_input_rejectedWhat we probed
A malformed batch id is 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
- A malformed batch id is rejected before any agent runs
- Actual
- expected exactly 0, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "today",
"apChannel": "C0FINANCE01",
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "invalid_input_rejected"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"batchId: batch id like AP-2026-10-22"
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "297",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "75"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "invalid-input-rejected-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "today",
"apChannel": "C0FINANCE01",
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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_fbd12df7d3c54163a3711aaf0af39176/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "today",
"apChannel": "C0FINANCE01",
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"fs_case": "invalid_input_rejected"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"batchId: batch id like AP-2026-10-22"
]
}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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "297",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "75"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "invalid-input-rejected-vr_fbd12df7d3c54163a3711aaf0af39176",
"input": {
"batchId": "today",
"apChannel": "C0FINANCE01",
"buyers": [
"U_BUYER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176",
"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_fbd12df7d3c54163a3711aaf0af39176/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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_fbd12df7d3c54163a3711aaf0af39176- App version (declared)
acme-ops-invoice-three-way-m…- Source receipt
- Source receipt ↗
Technical reference
invalid_input_rejectedApp version (declared): acme-ops-invoice-three-way-match-1.0.0-4ac41d8
A malformed batch id is 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_fbd12df7d3c54163a3711aaf0af39176
10 required checks for the declared application workflow. Results apply to the recorded observation windows.
4 passed · 5 failed · 1 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 · entering_clerk_cannot_approve
- Valid data and boundary values · Linked checks passed · invalid_input_rejected
- Correct amount, currency and quantity · Linked check failed · variance_needs_ap_approval, over_billed_held
- Duplicate requests and events · Linked check failed · duplicate_never_approved
- Requests arriving together · Proposed as not applicable
- Out-of-order and stale events · Proposed as not applicable
- Delayed or missing events · Proposed as not applicable
- Provider authentication and permissions · Linked checks passed · erp_unreadable_approves_nothing
- 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 · Proposed as not applicable
- Restart without losing or duplicating work · Proposed as not applicable
- Finding and repairing inconsistent state · Proposed as not applicable
- Cancellation, refunds and access · Linked check failed · clean_match_auto_approved, over_billed_held
- Data ownership and privacy · Proposed as not applicable
- Test isolation and cleanup · Linked checks passed · baseline
Applicability comes from the proposed plan. Test results come from the recorded execution.
App version: acme-ops-invoice-three-way-match-1.0.0-4ac41d8 (declared)
Measured run: 2026-10-22T19:06:22.061671+00:00 – 2026-10-22T19:06:46.166065+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: 53/62 successful · checkpoints: 9/10 recorded
Why checks are unmeasured
- entering_clerk_cannot_approve: app action expected HTTP 403, received 404
Sanitized request and event timeline (62 events)
- · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:22.324384+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-baseline", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "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:06:22.821827+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "346", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-baseline", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "baseline" } }Recorded response · HTTP 200
{ "runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "baseline" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "179YXXRG5Y.KUM6OA", "appliedAt": "2026-10-22T19:06:22.684Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "92371fd31fded8a3752b5be3db9e4e770771267c4b4c38046a2f429318d7bf2e" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:22.476Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:22.478Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:22.481Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:22.685Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:22.686Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:22.476Z", "updatedAt": "2026-10-22T19:06:22.686Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 6a674d337c3a · processing 11.86ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-baseline: bills could not be read; nothing was approved.", "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: 11.86ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "153", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-baseline: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0FINANCE01", "message": { "bot_id": "bot_2e3208ad64844196b3950e8722", "client_msg_id": "cli_b764fc8c31f54ce9bf00788865", "name": "item-0f37c8", "old_name": "Sample Old", "parent_user_id": "par_625304a34628465fb18c5a0e7d", "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": "179YXXRG5Y.KUM6OA" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:23.183841+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "baseline" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "179YXXRG5Y.KUM6OA", "appliedAt": "2026-10-22T19:06:22.684Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "92371fd31fded8a3752b5be3db9e4e770771267c4b4c38046a2f429318d7bf2e" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:22.476Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:22.478Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:22.481Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:22.685Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:22.686Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:22.476Z", "updatedAt": "2026-10-22T19:06:22.686Z" } ] } - · POST app request /invocations · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-baseline", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "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:06:23.445761+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "346", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-baseline", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "baseline" } }Recorded response · HTTP 200
{ "runId": "baseline-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "baseline" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "179YXXRG5Y.KUM6OA", "appliedAt": "2026-10-22T19:06:22.684Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "4e944d01a6461d69712a439c3fb852716f28180f7d2fe7f8e6542ac65888f920" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:22.476Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:22.478Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:22.481Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:22.685Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:22.686Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:23.297Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:22.476Z", "updatedAt": "2026-10-22T19:06:23.297Z", "duplicate": true } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:23.824707+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "baseline" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "179YXXRG5Y.KUM6OA", "appliedAt": "2026-10-22T19:06:22.684Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "4e944d01a6461d69712a439c3fb852716f28180f7d2fe7f8e6542ac65888f920" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:22.476Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:22.478Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:22.481Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:22.685Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:22.686Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:23.297Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:22.476Z", "updatedAt": "2026-10-22T19:06:23.297Z" } ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs · bills read from erp · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:24.085734+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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 · bills read from erp · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-bills-read-from-erp", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "bills_read_from_erp" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:24.564209+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "379", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-bills-read-from-erp", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "bills_read_from_erp" } }Recorded response · HTTP 200
{ "runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "bills_read_from_erp" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17VPMJ4SXI.1CEVLF", "appliedAt": "2026-10-22T19:06:24.413Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "64a7148e997791b70b94fb7e0376fe61a08713fa949cfc8e887502faa49c680b" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:24.199Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:24.200Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:24.202Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:24.414Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:24.415Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:24.199Z", "updatedAt": "2026-10-22T19:06:24.416Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 975012132df4 · processing 13.83ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-bills-read-from-erp: bills could not be read; nothing was approved.", "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.83ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "164", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-bills-read-from-erp: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0FINANCE01", "message": { "bot_id": "bot_b8e8665d4ec748729f9417d37d", "client_msg_id": "cli_e763c2c8d17b4d53a34c2a53d8", "name": "item-b32a52", "old_name": "Sample Old", "parent_user_id": "par_86dc4bd5f094488eb4a962c4f5", "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": "17VPMJ4SXI.1CEVLF" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs · bills read from erp · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:24.916245+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "bills_read_from_erp" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17VPMJ4SXI.1CEVLF", "appliedAt": "2026-10-22T19:06:24.413Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "64a7148e997791b70b94fb7e0376fe61a08713fa949cfc8e887502faa49c680b" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:24.199Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:24.200Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:24.202Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:24.414Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:24.415Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:24.199Z", "updatedAt": "2026-10-22T19:06:24.416Z" } ] } - · POST app request /invocations · bills read from erp · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-bills-read-from-erp", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "bills_read_from_erp" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:25.166776+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "379", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-bills-read-from-erp", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "bills_read_from_erp" } }Recorded response · HTTP 200
{ "runId": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "bills_read_from_erp" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17VPMJ4SXI.1CEVLF", "appliedAt": "2026-10-22T19:06:24.413Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "de767ddde2c4e0d34ca2e03ac769c91d3682293a75f0804895a1e952f24945da" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:24.199Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:24.200Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:24.202Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:24.414Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:24.415Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:25.028Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:24.199Z", "updatedAt": "2026-10-22T19:06:25.028Z", "duplicate": true } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs · bills read from erp · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/bills_read_from_erp/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:25.519007+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "bills-read-from-erp-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "bills_read_from_erp" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17VPMJ4SXI.1CEVLF", "appliedAt": "2026-10-22T19:06:24.413Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "de767ddde2c4e0d34ca2e03ac769c91d3682293a75f0804895a1e952f24945da" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:24.199Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:24.200Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:24.202Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:24.414Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:24.415Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:25.028Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:24.199Z", "updatedAt": "2026-10-22T19:06:25.028Z" } ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs · clean match auto approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:25.792850+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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 · clean match auto approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-clean-match-auto-approved", "billIds": [ "11" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "clean_match_auto_approved" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:26.226704+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "382", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-clean-match-auto-approved", "billIds": [ "11" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "clean_match_auto_approved" } }Recorded response · HTTP 200
{ "runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "clean_match_auto_approved" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17G6QIUBUX.HKL8RR", "appliedAt": "2026-10-22T19:06:26.089Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "8f1d5821c777d3f6aaab82db667e49584d07e8e6ce7b62daef2138e9125c71bd" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:25.897Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:25.899Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:25.901Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:26.089Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:26.092Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:25.897Z", "updatedAt": "2026-10-22T19:06:26.092Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 7e8fc033dc67 · processing 15.41ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-clean-match-auto-approved: bills could not be read; nothing was approved.", "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: 15.41ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "170", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-clean-match-auto-approved: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0FINANCE01", "message": { "bot_id": "bot_4038bd7c6baa4a059fae20783c", "client_msg_id": "cli_7071ac712c4b47eea7e00e2472", "name": "item-83c509", "old_name": "Sample Old", "parent_user_id": "par_af9ecebf5d824a339c476bf1e8", "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": "17G6QIUBUX.HKL8RR" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs · clean match auto approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:26.604784+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "clean_match_auto_approved" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17G6QIUBUX.HKL8RR", "appliedAt": "2026-10-22T19:06:26.089Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "8f1d5821c777d3f6aaab82db667e49584d07e8e6ce7b62daef2138e9125c71bd" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:25.897Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:25.899Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:25.901Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:26.089Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:26.092Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:25.897Z", "updatedAt": "2026-10-22T19:06:26.092Z" } ] } - · POST app request /invocations · clean match auto approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-clean-match-auto-approved", "billIds": [ "11" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "clean_match_auto_approved" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:26.862733+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "382", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-clean-match-auto-approved", "billIds": [ "11" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "clean_match_auto_approved" } }Recorded response · HTTP 200
{ "runId": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "clean_match_auto_approved" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17G6QIUBUX.HKL8RR", "appliedAt": "2026-10-22T19:06:26.089Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "3329a066fcf371d07e5343851428405bfbdddf9ec302a622fd9be8815408bbf3" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:25.897Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:25.899Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:25.901Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:26.089Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:26.092Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:26.717Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:25.897Z", "updatedAt": "2026-10-22T19:06:26.717Z", "duplicate": true } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs · clean match auto approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/clean_match_auto_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:27.207447+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "clean-match-auto-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "clean_match_auto_approved" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17G6QIUBUX.HKL8RR", "appliedAt": "2026-10-22T19:06:26.089Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "3329a066fcf371d07e5343851428405bfbdddf9ec302a622fd9be8815408bbf3" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:25.897Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:25.899Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:25.901Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:26.089Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:26.092Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:26.717Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:25.897Z", "updatedAt": "2026-10-22T19:06:26.717Z" } ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs · variance needs ap approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:27.459487+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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 · variance needs ap approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-variance-needs-ap-approval", "billIds": [ "12" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "variance_needs_ap_approval" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:27.917272+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "385", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-variance-needs-ap-approval", "billIds": [ "12" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "variance_needs_ap_approval" } }Recorded response · HTTP 200
{ "runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "variance_needs_ap_approval" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17XRLJK7UL.44ET6X", "appliedAt": "2026-10-22T19:06:27.765Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "f06601a447ca18e1e52ad6c4628f1af24bcf3eeaa16695e397e862405ca30479" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:27.569Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:27.570Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:27.573Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:27.765Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:27.767Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:27.569Z", "updatedAt": "2026-10-22T19:06:27.767Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 244f6eda7fd2 · processing 13.94ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-variance-needs-ap-approval: bills could not be read; nothing was approved.", "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.94ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "171", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-variance-needs-ap-approval: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0FINANCE01", "message": { "bot_id": "bot_649e164c487a440bbbcc57bfe7", "client_msg_id": "cli_f9520bd6ec814131912740ff21", "name": "item-3266d7", "old_name": "Sample Old", "parent_user_id": "par_c873259e2e9441649dbc25f0c5", "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": "17XRLJK7UL.44ET6X" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs · variance needs ap approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:28.260523+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "variance_needs_ap_approval" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17XRLJK7UL.44ET6X", "appliedAt": "2026-10-22T19:06:27.765Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "f06601a447ca18e1e52ad6c4628f1af24bcf3eeaa16695e397e862405ca30479" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:27.569Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:27.570Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:27.573Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:27.765Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:27.767Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:27.569Z", "updatedAt": "2026-10-22T19:06:27.767Z" } ] } - · POST app request /invocations · variance needs ap approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-variance-needs-ap-approval", "billIds": [ "12" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "variance_needs_ap_approval" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:28.517544+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "385", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-variance-needs-ap-approval", "billIds": [ "12" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "variance_needs_ap_approval" } }Recorded response · HTTP 200
{ "runId": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "variance_needs_ap_approval" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17XRLJK7UL.44ET6X", "appliedAt": "2026-10-22T19:06:27.765Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "a881370348612c6ad0bf66291d707df0a1a3d4ebe915493aeea81b583a085366" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:27.569Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:27.570Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:27.573Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:27.765Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:27.767Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:28.371Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:27.569Z", "updatedAt": "2026-10-22T19:06:28.371Z", "duplicate": true } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs · variance needs ap approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/variance_needs_ap_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:28.866913+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "variance-needs-ap-approval-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "variance_needs_ap_approval" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17XRLJK7UL.44ET6X", "appliedAt": "2026-10-22T19:06:27.765Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "a881370348612c6ad0bf66291d707df0a1a3d4ebe915493aeea81b583a085366" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:27.569Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:27.570Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:27.573Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:27.765Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:27.767Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:28.371Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:27.569Z", "updatedAt": "2026-10-22T19:06:28.371Z" } ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/entering_clerk_cannot_approve/runs · entering clerk cannot approve · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/entering_clerk_cannot_approve/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:29.111317+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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 · entering clerk cannot approve · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-entering-clerk-cannot-approve", "billIds": [ "12" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "entering_clerk_cannot_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:06:29.562587+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "394", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-entering-clerk-cannot-approve", "billIds": [ "12" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "entering_clerk_cannot_approve" } }Recorded response · HTTP 200
{ "runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "entering_clerk_cannot_approve" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "172XYNQSHX.LPURFN", "appliedAt": "2026-10-22T19:06:29.414Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "8fd2bee16d1c0d65463b19c7213867a961839ffab4b0415e797d621bf17140ce" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:29.231Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:29.232Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:29.235Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:29.415Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:29.417Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:29.231Z", "updatedAt": "2026-10-22T19:06:29.417Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request c02d5ffd1ef2 · processing 14.03ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-entering-clerk-cannot-approve: bills could not be read; nothing was approved.", "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.03ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "174", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-entering-clerk-cannot-approve: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0FINANCE01", "message": { "bot_id": "bot_b1c6947d802942c5ab68a3f0d5", "client_msg_id": "cli_2246020c0a1441b2b8f696e4f1", "name": "item-6f892b", "old_name": "Sample Old", "parent_user_id": "par_08914d1a7a0e4a49b20a46befe", "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": "172XYNQSHX.LPURFN" } - · POST app request /invocations · entering clerk cannot approve · HTTP 404
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "signal", "runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176", "actionId": "netsuite.approve_bill:12", "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:06:29.820142+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "173", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "signal", "runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176", "actionId": "netsuite.approve_bill:12", "value": "approve", "userId": "U_AP_CLERK" }Recorded response · HTTP 404
{ "result": "no_such_signal", "runId": "entering-clerk-cannot-approve-vr_fbd12df7d3c54163a3711aaf0af39176", "actionId": "netsuite.approve_bill:12" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs · over billed held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:30.090956+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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 · over billed held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-over-billed-held", "billIds": [ "13" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "over_billed_held" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:30.524159+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "355", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-over-billed-held", "billIds": [ "13" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "over_billed_held" } }Recorded response · HTTP 200
{ "runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "over_billed_held" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "172RSHEFWK.1EA605", "appliedAt": "2026-10-22T19:06:30.392Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "7665194e3a67c12ce0125edcb26df647cd0ff2aded8796c06c85506f393fd818" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:30.213Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:30.214Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:30.216Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:30.392Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:30.394Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:30.213Z", "updatedAt": "2026-10-22T19:06:30.394Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request a6a680afb1b9 · processing 14.45ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-over-billed-held: bills could not be read; nothing was approved.", "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.45ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "161", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-over-billed-held: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0FINANCE01", "message": { "bot_id": "bot_03b2ca2d0ed24e1aaa95767ac7", "client_msg_id": "cli_c4ed5e9e761e4786bdb52df78f", "name": "item-fc22c6", "old_name": "Sample Old", "parent_user_id": "par_a008cc4f555a48dbb8076b0d37", "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": "172RSHEFWK.1EA605" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs · over billed held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:30.870898+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "over_billed_held" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "172RSHEFWK.1EA605", "appliedAt": "2026-10-22T19:06:30.392Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "7665194e3a67c12ce0125edcb26df647cd0ff2aded8796c06c85506f393fd818" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:30.213Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:30.214Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:30.216Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:30.392Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:30.394Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:30.213Z", "updatedAt": "2026-10-22T19:06:30.394Z" } ] } - · POST app request /invocations · over billed held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-over-billed-held", "billIds": [ "13" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "over_billed_held" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:31.125771+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "355", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-over-billed-held", "billIds": [ "13" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "over_billed_held" } }Recorded response · HTTP 200
{ "runId": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "over_billed_held" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "172RSHEFWK.1EA605", "appliedAt": "2026-10-22T19:06:30.392Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "933ca69152d427ba77b0a5d799df4b9549c4767795959f368f51e1880ead5631" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:30.213Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:30.214Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:30.216Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:30.392Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:30.394Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:30.986Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:30.213Z", "updatedAt": "2026-10-22T19:06:30.986Z", "duplicate": true } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs · over billed held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/over_billed_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:31.486923+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "over-billed-held-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "over_billed_held" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "172RSHEFWK.1EA605", "appliedAt": "2026-10-22T19:06:30.392Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "933ca69152d427ba77b0a5d799df4b9549c4767795959f368f51e1880ead5631" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:30.213Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:30.214Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:30.216Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:30.392Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:30.394Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:30.986Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:30.213Z", "updatedAt": "2026-10-22T19:06:30.986Z" } ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs · duplicate never approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:31.724361+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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 · duplicate never approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-duplicate-never-approved", "billIds": [ "11", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "duplicate_never_approved" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:32.149591+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "384", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-duplicate-never-approved", "billIds": [ "11", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "duplicate_never_approved" } }Recorded response · HTTP 200
{ "runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "duplicate_never_approved" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17EDUMK2S7.61AVDL", "appliedAt": "2026-10-22T19:06:32.014Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "cd406031b779aa5a75a18360e68d477982ad62e4b4f38a6ad46b8dd51fad8174" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:31.833Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:31.834Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:31.838Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:32.014Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:32.016Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:31.833Z", "updatedAt": "2026-10-22T19:06:32.016Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 2cbc5733d975 · processing 13.66ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-duplicate-never-approved: bills could not be read; nothing was approved.", "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.66ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "169", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-duplicate-never-approved: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0FINANCE01", "message": { "bot_id": "bot_f4e3f8fa4f7942fb954d8d90fa", "client_msg_id": "cli_8e60121e35364230b8247ba415", "name": "item-c9cf86", "old_name": "Sample Old", "parent_user_id": "par_6b76b95bdf514637877690886d", "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": "17EDUMK2S7.61AVDL" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs · duplicate never approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:32.487254+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "duplicate_never_approved" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17EDUMK2S7.61AVDL", "appliedAt": "2026-10-22T19:06:32.014Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "cd406031b779aa5a75a18360e68d477982ad62e4b4f38a6ad46b8dd51fad8174" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:31.833Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:31.834Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:31.838Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:32.014Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:32.016Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:31.833Z", "updatedAt": "2026-10-22T19:06:32.016Z" } ] } - · POST app request /invocations · duplicate never approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-duplicate-never-approved", "billIds": [ "11", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "duplicate_never_approved" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:06:32.735905+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "384", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-duplicate-never-approved", "billIds": [ "11", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "duplicate_never_approved" } }Recorded response · HTTP 200
{ "runId": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "duplicate_never_approved" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17EDUMK2S7.61AVDL", "appliedAt": "2026-10-22T19:06:32.014Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "069fb813a578b57fc4792546e12f7d8b0c7e1e4e6942828377f63e1cc3e3053b" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:31.833Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:31.834Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:31.838Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:32.014Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:32.016Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:32.608Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:31.833Z", "updatedAt": "2026-10-22T19:06:32.608Z", "duplicate": true } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs · duplicate never approved · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/duplicate_never_approved/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:33.081012+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "duplicate-never-approved-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "duplicate_never_approved" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17EDUMK2S7.61AVDL", "appliedAt": "2026-10-22T19:06:32.014Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "069fb813a578b57fc4792546e12f7d8b0c7e1e4e6942828377f63e1cc3e3053b" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:31.833Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:31.834Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:31.838Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:32.014Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:32.016Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:32.608Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:31.833Z", "updatedAt": "2026-10-22T19:06:32.608Z" } ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs · erp unreadable approves nothing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:33.328351+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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 · erp unreadable approves nothing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-erp-unreadable-approves-nothing", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "erp_unreadable_approves_nothing" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T19:06:33.767171+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "415", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-erp-unreadable-approves-nothing", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "erp_unreadable_approves_nothing" } }Recorded response · HTTP 200
{ "runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "erp_unreadable_approves_nothing" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17QUUP636G.5FRHJQ", "appliedAt": "2026-10-22T19:06:33.636Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "746fb57b9798c848e681a9e065156a796ff22e7fb13f03a942028be9a9690187" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:33.430Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:33.431Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:33.434Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:33.636Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:33.638Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:33.430Z", "updatedAt": "2026-10-22T19:06:33.638Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 8b5f8daa1d11 · processing 13.78ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-erp-unreadable-approves-nothing: bills could not be read; nothing was approved.", "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.78ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "176", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-erp-unreadable-approves-nothing: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0FINANCE01", "message": { "bot_id": "bot_ae5c76153a2d432380a6b74178", "client_msg_id": "cli_a1019b4fb3894f12bd5998d305", "name": "item-49fd2d", "old_name": "Sample Old", "parent_user_id": "par_8c2a6c13abb94fa2aa6a2a4910", "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": "17QUUP636G.5FRHJQ" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs · erp unreadable approves nothing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:34.119148+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "erp_unreadable_approves_nothing" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17QUUP636G.5FRHJQ", "appliedAt": "2026-10-22T19:06:33.636Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "746fb57b9798c848e681a9e065156a796ff22e7fb13f03a942028be9a9690187" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:33.430Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:33.431Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:33.434Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:33.636Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:33.638Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T19:06:33.430Z", "updatedAt": "2026-10-22T19:06:33.638Z" } ] } - · POST app request /invocations · erp unreadable approves nothing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-erp-unreadable-approves-nothing", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "erp_unreadable_approves_nothing" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T19:06:34.375786+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "415", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-erp-unreadable-approves-nothing", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "erp_unreadable_approves_nothing" } }Recorded response · HTTP 200
{ "runId": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "erp_unreadable_approves_nothing" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17QUUP636G.5FRHJQ", "appliedAt": "2026-10-22T19:06:33.636Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "4f3526ad3a128456f1443c0114448ba805608c2fd5adcdc5d58f0706603babd6" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:33.430Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:33.431Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:33.434Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:33.636Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:33.638Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:34.242Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:33.430Z", "updatedAt": "2026-10-22T19:06:34.243Z", "duplicate": true } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs · erp unreadable approves nothing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/cases/erp_unreadable_approves_nothing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:34.716887+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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": "erp-unreadable-approves-nothing-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "erp_unreadable_approves_nothing" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "applied", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "ref": "17QUUP636G.5FRHJQ", "appliedAt": "2026-10-22T19:06:33.636Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "4f3526ad3a128456f1443c0114448ba805608c2fd5adcdc5d58f0706603babd6" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:33.430Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:33.431Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:33.434Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:33.636Z", "msg": "slack.post_batch: applied" }, { "at": "2026-10-22T19:06:33.638Z", "msg": "done (ok)" }, { "at": "2026-10-22T19:06:34.242Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:33.430Z", "updatedAt": "2026-10-22T19:06:34.243Z" } ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:34.958292+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-slack-rate-limited", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "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:06:43.726528+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "376", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-slack-rate-limited", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "slack_rate_limited" } }Recorded response · HTTP 200
{ "runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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": "failed", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "slack_rate_limited" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "failed", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited", "errorCode": "slack:ratelimited", "reconciled": null } ], "counts": { "applied": 0, "failed": 1, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "8396a6bb08d8bb3b9e74af9eb99aaea13bda33b9e63e969acbfaafd2c5458ba9" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:35.078Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:35.079Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:35.080Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:43.587Z", "msg": "slack.post_batch: failed (slack:ratelimited)" }, { "at": "2026-10-22T19:06:43.590Z", "msg": "done (failed)" } ], "createdAt": "2026-10-22T19:06:35.078Z", "updatedAt": "2026-10-22T19:06:43.590Z", "duplicate": false } - · 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_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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": "163", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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 b270fdd87175 · processing 0.87ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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": "163", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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.9ms
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_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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.9ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "163", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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 aef4c888cb64 · processing 0.9ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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.9ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "163", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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.83ms
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_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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.83ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "163", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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 09c6e564af0d · processing 0.83ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/5a2eacd142/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "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.83ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "163", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "content-type": "application/json; charset=utf-8" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0FINANCE01", "text": ":rotating_light: AP-slack-rate-limited: bills could not be read; nothing was approved.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 429
{ "ok": false, "error": "ratelimited" } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:44.074407+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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": "failed", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "slack_rate_limited" }, "duplicateStarts": 0, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "failed", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited", "errorCode": "slack:ratelimited", "reconciled": null } ], "counts": { "applied": 0, "failed": 1, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 4, "head": "8396a6bb08d8bb3b9e74af9eb99aaea13bda33b9e63e969acbfaafd2c5458ba9" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:35.078Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:35.079Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:35.080Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:43.587Z", "msg": "slack.post_batch: failed (slack:ratelimited)" }, { "at": "2026-10-22T19:06:43.590Z", "msg": "done (failed)" } ], "createdAt": "2026-10-22T19:06:35.078Z", "updatedAt": "2026-10-22T19:06:43.590Z" } ] } - · 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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-slack-rate-limited", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "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:06:44.310087+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "376", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "AP-slack-rate-limited", "billIds": [ "11", "12", "13", "14" ], "apChannel": "C0FINANCE01", "approvers": [ "U_AP_LEAD", "U_AP_CLERK" ], "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "slack_rate_limited" } }Recorded response · HTTP 200
{ "runId": "slack-rate-limited-vr_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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": "failed", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "slack_rate_limited" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "failed", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited", "errorCode": "slack:ratelimited", "reconciled": null } ], "counts": { "applied": 0, "failed": 1, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "8ecea1967b6776d4a5790ba06bcf7e5faa965f2278f82d9747aa870c1c77a650" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:35.078Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:35.079Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:35.080Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:43.587Z", "msg": "slack.post_batch: failed (slack:ratelimited)" }, { "at": "2026-10-22T19:06:43.590Z", "msg": "done (failed)" }, { "at": "2026-10-22T19:06:44.180Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:35.078Z", "updatedAt": "2026-10-22T19:06:44.180Z", "duplicate": true } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:44.651271+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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_fbd12df7d3c54163a3711aaf0af39176", "workflow": "invoice-three-way-match", "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": "failed", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "slack_rate_limited" }, "duplicateStarts": 1, "agents": [ { "name": "match-engine", "status": "skipped", "error": "not configured: netsuite", "errorCode": "not_configured", "durationMs": 0 } ], "actions": [ { "id": "slack.post_batch", "kind": "slack.post_batch", "provider": "slack", "agent": "match-engine", "gate": "auto", "status": "failed", "summary": { "channel": "C0FINANCE01", "blocked": true }, "attempts": 1, "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited", "errorCode": "slack:ratelimited", "reconciled": null } ], "counts": { "applied": 0, "failed": 1, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": { "seq": 5, "head": "8ecea1967b6776d4a5790ba06bcf7e5faa965f2278f82d9747aa870c1c77a650" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:06:35.078Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:06:35.079Z", "msg": "agents: match-engine=skipped" }, { "at": "2026-10-22T19:06:35.080Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:06:43.587Z", "msg": "slack.post_batch: failed (slack:ratelimited)" }, { "at": "2026-10-22T19:06:43.590Z", "msg": "done (failed)" }, { "at": "2026-10-22T19:06:44.180Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:06:35.078Z", "updatedAt": "2026-10-22T19:06:44.180Z" } ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:44.905839+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "invalid-input-rejected-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "today", "apChannel": "C0FINANCE01", "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "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:06:45.187164+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "297", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "75" }Request body
{ "action": "start", "runId": "invalid-input-rejected-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "today", "apChannel": "C0FINANCE01", "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "invalid_input_rejected" } }Recorded response · HTTP 400
{ "error": "invalid input", "issues": [ "batchId: batch id like AP-2026-10-22" ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:45.547858+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_fbd12df7d3c54163a3711aaf0af39176' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "invalid-input-rejected-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "today", "apChannel": "C0FINANCE01", "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "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:06:45.775184+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "297", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "75" }Request body
{ "action": "start", "runId": "invalid-input-rejected-vr_fbd12df7d3c54163a3711aaf0af39176", "input": { "batchId": "today", "apChannel": "C0FINANCE01", "buyers": [ "U_BUYER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_fbd12df7d3c54163a3711aaf0af39176", "fs_case": "invalid_input_rejected" } }Recorded response · HTTP 400
{ "error": "invalid input", "issues": [ "batchId: batch id like AP-2026-10-22" ] } - · GET app request /verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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/138f28efb0e5bff84dd11feb579bd25a96499f0f5799b030/verify/runs/vr_fbd12df7d3c54163a3711aaf0af39176/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_fbd12df7d3c54163a3711aaf0af39176' \ --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:06:46.158585+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_fbd12df7d3c54163a3711aaf0af39176", "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.