Workflow verification incomplete
This receipt shows the requests we made, what the app reported back, and which checks passed or failed. It covers what ran in this sandbox session against the rules we set.
Failing
Each check was set up before the run. This shows what we tried, what came back, and which rule it was checked against.
This receipt covers the checks in this run only. Passing all checks does not certify the whole app as production-ready.
Test scenarios
A request starts one recorded run (provider-independent, so every later check is measured)
baselineWhat we probed
A request starts one recorded run (provider-independent, so every later check is measured)
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A request starts one recorded run (provider-independent, so every later check is measured)
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-baseline",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline"
}
}Server returned
HTTP 200
{
"runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_baseline"
},
"attempts": 1,
"ref": "178QU2OJX7.7RBV0F",
"appliedAt": "2026-10-22T19:36:28.572Z",
"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": "fad7f6d7bfca371e481d315b242d110de595bb02eb0bf5e5d947b35d3bb39700"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:28.094Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:28.096Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:28.100Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:28.573Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:28.575Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:28.094Z",
"updatedAt": "2026-10-22T19:36:28.576Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "348",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-baseline",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"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_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_baseline"
},
"attempts": 1,
"ref": "178QU2OJX7.7RBV0F",
"appliedAt": "2026-10-22T19:36:28.572Z",
"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": "fad7f6d7bfca371e481d315b242d110de595bb02eb0bf5e5d947b35d3bb39700"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:28.094Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:28.096Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:28.100Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:28.573Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:28.575Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:28.094Z",
"updatedAt": "2026-10-22T19:36:28.576Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-baseline",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline"
}
}Server returned
HTTP 200
{
"runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_baseline"
},
"attempts": 1,
"ref": "178QU2OJX7.7RBV0F",
"appliedAt": "2026-10-22T19:36:28.572Z",
"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": "8b0d7360284bab45884e2c279548becd8f40deda15cea18742ecbdac1beee8aa"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:28.094Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:28.096Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:28.100Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:28.573Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:28.575Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:29.190Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:28.094Z",
"updatedAt": "2026-10-22T19:36:29.190Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "348",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-baseline",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"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_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_baseline"
},
"attempts": 1,
"ref": "178QU2OJX7.7RBV0F",
"appliedAt": "2026-10-22T19:36:28.572Z",
"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": "8b0d7360284bab45884e2c279548becd8f40deda15cea18742ecbdac1beee8aa"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:28.094Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:28.096Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:28.100Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:28.573Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:28.575Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:29.190Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:28.094Z",
"updatedAt": "2026-10-22T19:36:29.190Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc- App version (declared)
acme-ops-payroll-anomaly-rev…- Source receipt
- Source receipt ↗
Technical reference
baselineApp version (declared): acme-ops-payroll-anomaly-review-1.0.0-befeb35
A request starts one recorded run (provider-independent, so every later check is measured)
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (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": "C0PAYROLL01",
"text": ":warning: PAYREV-baseline: payroll pr_baseline could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0PAYROLL01",
"message": {
"bot_id": "bot_6576bd6e7c6c41dbb037223ff3",
"client_msg_id": "cli_a42ec49cf28e4cb1a4e0e53768",
"name": "item-a8b45d",
"old_name": "Sample Old",
"parent_user_id": "par_92c2bf2e67f84ce9be6b49bb26",
"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": "178QU2OJX7.7RBV0F"
}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/460b43d7b8/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "230",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0PAYROLL01",
"text": ":warning: PAYREV-baseline: payroll pr_baseline could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"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 payroll review reads the payroll, its history and employees
baseline_effectsWhat we probed
A payroll review reads the payroll, its history and employees
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A payroll review reads the payroll, its history and employees
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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-effects-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-baseline",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline_effects"
}
}Server returned
HTTP 200
{
"runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline_effects"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_baseline"
},
"attempts": 1,
"ref": "17FU57IO6S.CUO2I9",
"appliedAt": "2026-10-22T19:36:30.185Z",
"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": "30e7c81232b706f204b07f2801313056fbe69cbb1c3fcf7a9e088e2429679d57"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:29.997Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:29.998Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:30.006Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:30.185Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:30.187Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:29.997Z",
"updatedAt": "2026-10-22T19:36:30.187Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "364",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-baseline",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline_effects"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline_effects"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_baseline"
},
"attempts": 1,
"ref": "17FU57IO6S.CUO2I9",
"appliedAt": "2026-10-22T19:36:30.185Z",
"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": "30e7c81232b706f204b07f2801313056fbe69cbb1c3fcf7a9e088e2429679d57"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:29.997Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:29.998Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:30.006Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:30.185Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:30.187Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:29.997Z",
"updatedAt": "2026-10-22T19:36:30.187Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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-effects-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-baseline",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline_effects"
}
}Server returned
HTTP 200
{
"runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline_effects"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_baseline"
},
"attempts": 1,
"ref": "17FU57IO6S.CUO2I9",
"appliedAt": "2026-10-22T19:36:30.185Z",
"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": "d073f933f69a657d16597593c42b4c26166f98d088938c659d7567178aefbadb"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:29.997Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:29.998Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:30.006Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:30.185Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:30.187Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:30.751Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:29.997Z",
"updatedAt": "2026-10-22T19:36:30.751Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "364",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-baseline",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline_effects"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "baseline_effects"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_baseline"
},
"attempts": 1,
"ref": "17FU57IO6S.CUO2I9",
"appliedAt": "2026-10-22T19:36:30.185Z",
"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": "d073f933f69a657d16597593c42b4c26166f98d088938c659d7567178aefbadb"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:29.997Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:29.998Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:30.006Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:30.185Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:30.187Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:30.751Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:29.997Z",
"updatedAt": "2026-10-22T19:36:30.751Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc- App version (declared)
acme-ops-payroll-anomaly-rev…- Source receipt
- Source receipt ↗
Technical reference
baseline_effectsApp version (declared): acme-ops-payroll-anomaly-review-1.0.0-befeb35
A payroll review reads the payroll, its history and employees
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": "C0PAYROLL01",
"text": ":warning: PAYREV-baseline: payroll pr_baseline could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0PAYROLL01",
"message": {
"bot_id": "bot_75a5e948805840f4b145706ea7",
"client_msg_id": "cli_2f8362dcab7c4aa7950659ae3b",
"name": "item-b0b382",
"old_name": "Sample Old",
"parent_user_id": "par_ef87fdd00dc74ebab235a07bb3",
"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": "17FU57IO6S.CUO2I9"
}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/460b43d7b8/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "230",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0PAYROLL01",
"text": ":warning: PAYREV-baseline: payroll pr_baseline could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"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 payroll without anomalies is submitted at once
clean_payroll_submittedWhat we probed
A payroll without anomalies is submitted at once
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A payroll without anomalies is submitted at once
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-clean-payroll-submitted",
"payrollId": "pr_clean_payroll_submitted",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "clean_payroll_submitted"
}
}Server returned
HTTP 200
{
"runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "clean_payroll_submitted"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_clean_payroll_submitted"
},
"attempts": 1,
"ref": "17BGZ6TEDB.Y89RBP",
"appliedAt": "2026-10-22T19:36:31.772Z",
"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": "5a8a4849ea60447f13e0348e699773d5658dcca40dd0ff84edac1e7404ff69ca"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:31.591Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:31.593Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:31.596Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:31.772Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:31.774Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:31.591Z",
"updatedAt": "2026-10-22T19:36:31.774Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "408",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-clean-payroll-submitted",
"payrollId": "pr_clean_payroll_submitted",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "clean_payroll_submitted"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "clean_payroll_submitted"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_clean_payroll_submitted"
},
"attempts": 1,
"ref": "17BGZ6TEDB.Y89RBP",
"appliedAt": "2026-10-22T19:36:31.772Z",
"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": "5a8a4849ea60447f13e0348e699773d5658dcca40dd0ff84edac1e7404ff69ca"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:31.591Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:31.593Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:31.596Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:31.772Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:31.774Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:31.591Z",
"updatedAt": "2026-10-22T19:36:31.774Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-clean-payroll-submitted",
"payrollId": "pr_clean_payroll_submitted",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "clean_payroll_submitted"
}
}Server returned
HTTP 200
{
"runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "clean_payroll_submitted"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_clean_payroll_submitted"
},
"attempts": 1,
"ref": "17BGZ6TEDB.Y89RBP",
"appliedAt": "2026-10-22T19:36:31.772Z",
"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": "10158f6270100006954d3891dccca79eaa83d7107efa6a8cabb2d26f6fb2dbe9"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:31.591Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:31.593Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:31.596Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:31.772Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:31.774Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:32.324Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:31.591Z",
"updatedAt": "2026-10-22T19:36:32.324Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "408",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-clean-payroll-submitted",
"payrollId": "pr_clean_payroll_submitted",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "clean_payroll_submitted"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "clean_payroll_submitted"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_clean_payroll_submitted"
},
"attempts": 1,
"ref": "17BGZ6TEDB.Y89RBP",
"appliedAt": "2026-10-22T19:36:31.772Z",
"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": "10158f6270100006954d3891dccca79eaa83d7107efa6a8cabb2d26f6fb2dbe9"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:31.591Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:31.593Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:31.596Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:31.772Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:31.774Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:32.324Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:31.591Z",
"updatedAt": "2026-10-22T19:36:32.324Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc- App version (declared)
acme-ops-payroll-anomaly-rev…- Source receipt
- Source receipt ↗
Technical reference
clean_payroll_submittedApp version (declared): acme-ops-payroll-anomaly-review-1.0.0-befeb35
A payroll without anomalies is submitted at once
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": "C0PAYROLL01",
"text": ":warning: PAYREV-clean-payroll-submitted: payroll pr_clean_payroll_submitted could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0PAYROLL01",
"message": {
"bot_id": "bot_5c05ed63afc349aca3375a338e",
"client_msg_id": "cli_f77ac994ea804edebbc6cbc6d0",
"name": "item-8c8c50",
"old_name": "Sample Old",
"parent_user_id": "par_7edd27f26c044ae7a82b740617",
"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": "17BGZ6TEDB.Y89RBP"
}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/460b43d7b8/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "260",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0PAYROLL01",
"text": ":warning: PAYREV-clean-payroll-submitted: payroll pr_clean_payroll_submitted could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"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.
Pay after termination, a large raise and an oversized first payroll are flagged
anomalies_flaggedWhat we probed
Pay after termination, a large raise and an oversized first payroll are flagged
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- Pay after termination, a large raise and an oversized first payroll are flagged
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-anomalies-flagged",
"payrollId": "pr_anomalies_flagged",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "anomalies_flagged"
}
}Server returned
HTTP 200
{
"runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "anomalies_flagged"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 1
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_anomalies_flagged"
},
"attempts": 1,
"ref": "17G7T705YH.UYYGOI",
"appliedAt": "2026-10-22T19:36:33.300Z",
"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": "f78495bad4bbac3f3a1d2111fd7332e95b7cf6553d867053c7b79f9901556078"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:33.119Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:33.121Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:33.124Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:33.300Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:33.303Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:33.119Z",
"updatedAt": "2026-10-22T19:36:33.303Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-anomalies-flagged",
"payrollId": "pr_anomalies_flagged",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "anomalies_flagged"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "anomalies_flagged"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 1
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_anomalies_flagged"
},
"attempts": 1,
"ref": "17G7T705YH.UYYGOI",
"appliedAt": "2026-10-22T19:36:33.300Z",
"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": "f78495bad4bbac3f3a1d2111fd7332e95b7cf6553d867053c7b79f9901556078"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:33.119Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:33.121Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:33.124Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:33.300Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:33.303Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:33.119Z",
"updatedAt": "2026-10-22T19:36:33.303Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-anomalies-flagged",
"payrollId": "pr_anomalies_flagged",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "anomalies_flagged"
}
}Server returned
HTTP 200
{
"runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "anomalies_flagged"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 1
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_anomalies_flagged"
},
"attempts": 1,
"ref": "17G7T705YH.UYYGOI",
"appliedAt": "2026-10-22T19:36:33.300Z",
"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": "2e86caa54391c76a48f6eb31e094b27c898d4c44d4c06c4d5da4ff16be9436f8"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:33.119Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:33.121Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:33.124Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:33.300Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:33.303Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:33.861Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:33.119Z",
"updatedAt": "2026-10-22T19:36:33.861Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-anomalies-flagged",
"payrollId": "pr_anomalies_flagged",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "anomalies_flagged"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "anomalies_flagged"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 1
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_anomalies_flagged"
},
"attempts": 1,
"ref": "17G7T705YH.UYYGOI",
"appliedAt": "2026-10-22T19:36:33.300Z",
"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": "2e86caa54391c76a48f6eb31e094b27c898d4c44d4c06c4d5da4ff16be9436f8"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:33.119Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:33.121Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:33.124Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:33.300Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:33.303Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:33.861Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:33.119Z",
"updatedAt": "2026-10-22T19:36:33.861Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc- App version (declared)
acme-ops-payroll-anomaly-rev…- Source receipt
- Source receipt ↗
Technical reference
anomalies_flaggedApp version (declared): acme-ops-payroll-anomaly-review-1.0.0-befeb35
Pay after termination, a large raise and an oversized first payroll are flagged
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": "C0PAYROLL01",
"text": ":warning: PAYREV-anomalies-flagged: payroll pr_anomalies_flagged could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0PAYROLL01",
"message": {
"bot_id": "bot_015a737303ff42a5aff8a34555",
"client_msg_id": "cli_b3ab3b2885a94b288c5faadcfa",
"name": "item-8b0761",
"old_name": "Sample Old",
"parent_user_id": "par_d04266337ded451f95aa140f52",
"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": "17G7T705YH.UYYGOI"
}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/460b43d7b8/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "248",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0PAYROLL01",
"text": ":warning: PAYREV-anomalies-flagged: payroll pr_anomalies_flagged could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
The person who prepared the payroll can't approve its anomalies
preparer_cannot_approveWhat we probed
The person who prepared the payroll can't approve its anomalies
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- The person who prepared the payroll can't approve its anomalies
- Actual
- app action expected HTTP 403, received 404
Requests and responses
01GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/preparer_cannot_approve/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/preparer_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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/preparer_cannot_approve/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/preparer_cannot_approve/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-preparer-cannot-approve",
"payrollId": "pr_preparer_cannot_approve",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "preparer_cannot_approve"
}
}Server returned
HTTP 200
{
"runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "preparer_cannot_approve"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_preparer_cannot_approve"
},
"attempts": 1,
"ref": "17OWARM1EK.3CB0GH",
"appliedAt": "2026-10-22T19:36:34.841Z",
"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": "bf866dae99b12574c0b0f221201da6b70986e041d5e897ecbaaa120640ae367e"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:34.660Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:34.661Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:34.665Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:34.841Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:34.843Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:34.660Z",
"updatedAt": "2026-10-22T19:36:34.843Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "408",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-preparer-cannot-approve",
"payrollId": "pr_preparer_cannot_approve",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "preparer_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": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc",
"actionId": "payroll.review:pr_preparer_cannot_approve",
"value": "approve",
"userId": "U_PREP"
}Server returned
HTTP 404
{
"result": "no_such_signal",
"runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc",
"actionId": "payroll.review:pr_preparer_cannot_approve"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "180",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "signal",
"runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc",
"actionId": "payroll.review:pr_preparer_cannot_approve",
"value": "approve",
"userId": "U_PREP"
}'This view is reconstructed from the saved method, URL, and sanitized 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_42e0d5627b754acda8a2603350d1d9bc- App version (declared)
acme-ops-payroll-anomaly-rev…- Source receipt
- Source receipt ↗
Technical reference
preparer_cannot_approveApp version (declared): acme-ops-payroll-anomaly-review-1.0.0-befeb35
The person who prepared the payroll can't approve its anomalies
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": "C0PAYROLL01",
"text": ":warning: PAYREV-preparer-cannot-approve: payroll pr_preparer_cannot_approve could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0PAYROLL01",
"message": {
"bot_id": "bot_ebe802b6cc8f47328342e1c301",
"client_msg_id": "cli_fde6512a119c47189199b9b608",
"name": "item-280265",
"old_name": "Sample Old",
"parent_user_id": "par_5de85537326c4675956e0706e8",
"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": "17OWARM1EK.3CB0GH"
}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/460b43d7b8/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "260",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0PAYROLL01",
"text": ":warning: PAYREV-preparer-cannot-approve: payroll pr_preparer_cannot_approve could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"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.
Without approval before the deadline the flagged are excluded and the rest is paid (needs clock control)
deadline_holds_flagged_pays_restWhat we probed
Without approval before the deadline the flagged are excluded and the rest is paid (needs clock control)
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- Without approval before the deadline the flagged are excluded and the rest is paid (needs clock control)
- Actual
- expected exactly 1, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-deadline-holds-flagged-pays-rest",
"payrollId": "pr_deadline_holds_flagged_pays_rest",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "deadline_holds_flagged_pays_rest"
}
}Server returned
HTTP 200
{
"runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "deadline_holds_flagged_pays_rest"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_deadline_holds_flagged_pays_rest"
},
"attempts": 1,
"ref": "170443TL9F.3959TI",
"appliedAt": "2026-10-22T19:36:35.735Z",
"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": "106e1dcf23bc71e4e6c6a8ba48b4791556ee578b69a7b4333664401f555b988b"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:35.560Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:35.561Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:35.564Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:35.735Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:35.737Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:35.560Z",
"updatedAt": "2026-10-22T19:36:35.737Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "444",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-deadline-holds-flagged-pays-rest",
"payrollId": "pr_deadline_holds_flagged_pays_rest",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "deadline_holds_flagged_pays_rest"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03POST /invocations200
We sent
POST /invocations
{
"action": "tick"
}Server returned
HTTP 200
{
"woken": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "17",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "12"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "tick"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "deadline_holds_flagged_pays_rest"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_deadline_holds_flagged_pays_rest"
},
"attempts": 1,
"ref": "170443TL9F.3959TI",
"appliedAt": "2026-10-22T19:36:35.735Z",
"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": "106e1dcf23bc71e4e6c6a8ba48b4791556ee578b69a7b4333664401f555b988b"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:35.560Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:35.561Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:35.564Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:35.735Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:35.737Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:35.560Z",
"updatedAt": "2026-10-22T19:36:35.737Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-deadline-holds-flagged-pays-rest",
"payrollId": "pr_deadline_holds_flagged_pays_rest",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "deadline_holds_flagged_pays_rest"
}
}Server returned
HTTP 200
{
"runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "deadline_holds_flagged_pays_rest"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_deadline_holds_flagged_pays_rest"
},
"attempts": 1,
"ref": "170443TL9F.3959TI",
"appliedAt": "2026-10-22T19:36:35.735Z",
"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": "f6b0f174c682bbbd664685fad00f68cf42725436d54a8d29f52a3407870b1228"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:35.560Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:35.561Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:35.564Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:35.735Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:35.737Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:36.588Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:35.560Z",
"updatedAt": "2026-10-22T19:36:36.588Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "444",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-deadline-holds-flagged-pays-rest",
"payrollId": "pr_deadline_holds_flagged_pays_rest",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "deadline_holds_flagged_pays_rest"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06POST /invocations200
We sent
POST /invocations
{
"action": "tick"
}Server returned
HTTP 200
{
"woken": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "17",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "12"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "tick"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "deadline_holds_flagged_pays_rest"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_deadline_holds_flagged_pays_rest"
},
"attempts": 1,
"ref": "170443TL9F.3959TI",
"appliedAt": "2026-10-22T19:36:35.735Z",
"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": "f6b0f174c682bbbd664685fad00f68cf42725436d54a8d29f52a3407870b1228"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:35.560Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:35.561Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:35.564Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:35.735Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:35.737Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:36.588Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:35.560Z",
"updatedAt": "2026-10-22T19:36:36.588Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc- App version (declared)
acme-ops-payroll-anomaly-rev…- Source receipt
- Source receipt ↗
Technical reference
deadline_holds_flagged_pays_restApp version (declared): acme-ops-payroll-anomaly-review-1.0.0-befeb35
Without approval before the deadline the flagged are excluded and the rest is paid (needs clock control)
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": "C0PAYROLL01",
"text": ":warning: PAYREV-deadline-holds-flagged-pays-rest: payroll pr_deadline_holds_flagged_pays_rest could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0PAYROLL01",
"message": {
"bot_id": "bot_e01a7c53d09b4109ab4b299e5f",
"client_msg_id": "cli_b6b34c606d6443b39d53ffa4f6",
"name": "item-6b2e3e",
"old_name": "Sample Old",
"parent_user_id": "par_ccd2ec5e323845ba851a25341d",
"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": "170443TL9F.3959TI"
}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/460b43d7b8/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "278",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0PAYROLL01",
"text": ":warning: PAYREV-deadline-holds-flagged-pays-rest: payroll pr_deadline_holds_flagged_pays_rest could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"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 Gusto can't be read nothing is submitted and payroll-ops is told
gusto_unavailable_never_submitsWhat we probed
When Gusto can't be read nothing is submitted and payroll-ops is told
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- When Gusto can't be read nothing is submitted and payroll-ops is told
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-gusto-unavailable-never-submits",
"payrollId": "pr_gusto_unavailable_never_submits",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "gusto_unavailable_never_submits"
}
}Server returned
HTTP 200
{
"runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "gusto_unavailable_never_submits"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_gusto_unavailable_never_submits"
},
"attempts": 1,
"ref": "17JZANJEIJ.5UEQ8G",
"appliedAt": "2026-10-22T19:36:37.836Z",
"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": "9897f892ecd088bb4949158e10d345c21b0e7ea06e26716d983799af63f5da75"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:37.660Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:37.661Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:37.663Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:37.836Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:37.838Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:37.660Z",
"updatedAt": "2026-10-22T19:36:37.838Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "440",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-gusto-unavailable-never-submits",
"payrollId": "pr_gusto_unavailable_never_submits",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "gusto_unavailable_never_submits"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "gusto_unavailable_never_submits"
},
"duplicateStarts": 0,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_gusto_unavailable_never_submits"
},
"attempts": 1,
"ref": "17JZANJEIJ.5UEQ8G",
"appliedAt": "2026-10-22T19:36:37.836Z",
"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": "9897f892ecd088bb4949158e10d345c21b0e7ea06e26716d983799af63f5da75"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:37.660Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:37.661Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:37.663Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:37.836Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:37.838Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T19:36:37.660Z",
"updatedAt": "2026-10-22T19:36:37.838Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-gusto-unavailable-never-submits",
"payrollId": "pr_gusto_unavailable_never_submits",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "gusto_unavailable_never_submits"
}
}Server returned
HTTP 200
{
"runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "gusto_unavailable_never_submits"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_gusto_unavailable_never_submits"
},
"attempts": 1,
"ref": "17JZANJEIJ.5UEQ8G",
"appliedAt": "2026-10-22T19:36:37.836Z",
"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": "670834a523d98cf9ef4c13215f86a0c67cc3277d46b55877fd386a78f5fadd84"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:37.660Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:37.661Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:37.663Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:37.836Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:37.838Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:38.392Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:37.660Z",
"updatedAt": "2026-10-22T19:36:38.392Z",
"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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "440",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "PAYREV-gusto-unavailable-never-submits",
"payrollId": "pr_gusto_unavailable_never_submits",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "gusto_unavailable_never_submits"
}
}'This view is reconstructed from the saved method, URL, and sanitized 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_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc",
"workflow": "payroll-anomaly-review",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "People",
"team": "payroll-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "gusto_unavailable_never_submits"
},
"duplicateStarts": 1,
"agents": [
{
"name": "payroll",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "employees",
"status": "skipped",
"error": "not configured: gusto",
"errorCode": "not_configured",
"durationMs": 0
},
{
"name": "anomalies",
"status": "failed",
"error": "FatalError: payroll or employees unavailable; nothing will be submitted",
"errorCode": "fatal",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.post_blocked",
"kind": "slack.post_blocked",
"provider": "slack",
"agent": "anomalies",
"gate": "auto",
"status": "applied",
"summary": {
"payroll": "pr_gusto_unavailable_never_submits"
},
"attempts": 1,
"ref": "17JZANJEIJ.5UEQ8G",
"appliedAt": "2026-10-22T19:36:37.836Z",
"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": "670834a523d98cf9ef4c13215f86a0c67cc3277d46b55877fd386a78f5fadd84"
},
"output": {
"mode": "blocked"
},
"events": [
{
"at": "2026-10-22T19:36:37.660Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T19:36:37.661Z",
"msg": "agents: payroll=skipped, employees=skipped"
},
{
"at": "2026-10-22T19:36:37.663Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T19:36:37.836Z",
"msg": "slack.post_blocked: applied"
},
{
"at": "2026-10-22T19:36:37.838Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T19:36:38.392Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T19:36:37.660Z",
"updatedAt": "2026-10-22T19:36:38.392Z"
}
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc- App version (declared)
acme-ops-payroll-anomaly-rev…- Source receipt
- Source receipt ↗
Technical reference
gusto_unavailable_never_submitsApp version (declared): acme-ops-payroll-anomaly-review-1.0.0-befeb35
When Gusto can't be read nothing is submitted and payroll-ops 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": "C0PAYROLL01",
"text": ":warning: PAYREV-gusto-unavailable-never-submits: payroll pr_gusto_unavailable_never_submits could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0PAYROLL01",
"message": {
"bot_id": "bot_481c95ff37304580977fdcaa73",
"client_msg_id": "cli_3f9c0fce1cfb496dab9b353cc1",
"name": "item-e38cf1",
"old_name": "Sample Old",
"parent_user_id": "par_06364b2df2804a78b77263e87e",
"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": "17JZANJEIJ.5UEQ8G"
}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/460b43d7b8/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "276",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0PAYROLL01",
"text": ":warning: PAYREV-gusto-unavailable-never-submits: payroll pr_gusto_unavailable_never_submits could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.",
"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 review id is rejected before any agent runs
invalid_input_rejectedWhat we probed
A malformed review 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 review 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_42e0d5627b754acda8a2603350d1d9bc/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "october",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "invalid_input_rejected"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"reviewId: review id like PAYREV-2026-10-31"
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "368",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "81"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "invalid-input-rejected-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "october",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"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_42e0d5627b754acda8a2603350d1d9bc/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "october",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"fs_case": "invalid_input_rejected"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"reviewId: review id like PAYREV-2026-10-31"
]
}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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "368",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "81"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "invalid-input-rejected-vr_42e0d5627b754acda8a2603350d1d9bc",
"input": {
"reviewId": "october",
"payrollId": "pr_baseline",
"preparer": "U_PREP",
"reviewers": [
"U_PREP",
"U_CONTROLLER"
],
"payrollChannel": "C0PAYROLL01"
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc",
"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_42e0d5627b754acda8a2603350d1d9bc/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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_42e0d5627b754acda8a2603350d1d9bc' \ --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_42e0d5627b754acda8a2603350d1d9bc- App version (declared)
acme-ops-payroll-anomaly-rev…- Source receipt
- Source receipt ↗
Technical reference
invalid_input_rejectedApp version (declared): acme-ops-payroll-anomaly-review-1.0.0-befeb35
A malformed review 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_42e0d5627b754acda8a2603350d1d9bc
8 required checks for the declared application workflow. Results apply to the recorded observation windows.
3 passed · 4 failed · 1 not checked
Coverage beyond the declared checks
Passing these checks does not establish every production behavior.
- Normal successful behavior · Linked check failed · baseline, baseline_effects
- The right user gets the right access · Not checked · preparer_cannot_approve
- Valid data and boundary values · Linked checks passed · invalid_input_rejected
- Correct amount, currency and quantity · Linked check failed · anomalies_flagged
- Duplicate requests and events · Proposed as not applicable
- Requests arriving together · Proposed as not applicable
- Out-of-order and stale events · Proposed as not applicable
- Delayed or missing events · Linked check failed · deadline_holds_flagged_pays_rest
- Provider authentication and permissions · Linked checks passed · gusto_unavailable_never_submits
- Rate limits, server failures and timeouts · Linked checks passed · gusto_unavailable_never_submits
- Completed action with a lost response · Proposed as not applicable
- Partial completion and recovery · Linked check failed · deadline_holds_flagged_pays_rest
- Restart without losing or duplicating work · Proposed as not applicable
- Finding and repairing inconsistent state · Proposed as not applicable
- Cancellation, refunds and access · Proposed as not applicable
- 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-payroll-anomaly-review-1.0.0-befeb35 (declared)
Measured run: 2026-10-22T19:36:27.729388+00:00 – 2026-10-22T19:36:40.236562+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: 44/47 successful · checkpoints: 7/8 recorded
Why checks are unmeasured
- preparer_cannot_approve: app action expected HTTP 403, received 404
Sanitized request and event timeline (47 events)
- · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:27.971494+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-baseline", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "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:36:28.681913+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "348", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-baseline", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline" } }Recorded response · HTTP 200
{ "runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_baseline" }, "attempts": 1, "ref": "178QU2OJX7.7RBV0F", "appliedAt": "2026-10-22T19:36:28.572Z", "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": "fad7f6d7bfca371e481d315b242d110de595bb02eb0bf5e5d947b35d3bb39700" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:28.094Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:28.096Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:28.100Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:28.573Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:28.575Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:28.094Z", "updatedAt": "2026-10-22T19:36:28.576Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 203d740b3c83 · processing 12.42ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-baseline: payroll pr_baseline could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.42ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "230", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-baseline: payroll pr_baseline could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0PAYROLL01", "message": { "bot_id": "bot_6576bd6e7c6c41dbb037223ff3", "client_msg_id": "cli_a42ec49cf28e4cb1a4e0e53768", "name": "item-a8b45d", "old_name": "Sample Old", "parent_user_id": "par_92c2bf2e67f84ce9be6b49bb26", "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": "178QU2OJX7.7RBV0F" } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:29.038854+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_baseline" }, "attempts": 1, "ref": "178QU2OJX7.7RBV0F", "appliedAt": "2026-10-22T19:36:28.572Z", "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": "fad7f6d7bfca371e481d315b242d110de595bb02eb0bf5e5d947b35d3bb39700" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:28.094Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:28.096Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:28.100Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:28.573Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:28.575Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:28.094Z", "updatedAt": "2026-10-22T19:36:28.576Z" } ] } - · POST app request /invocations · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-baseline", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "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:36:29.309680+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "348", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-baseline", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline" } }Recorded response · HTTP 200
{ "runId": "baseline-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_baseline" }, "attempts": 1, "ref": "178QU2OJX7.7RBV0F", "appliedAt": "2026-10-22T19:36:28.572Z", "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": "8b0d7360284bab45884e2c279548becd8f40deda15cea18742ecbdac1beee8aa" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:28.094Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:28.096Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:28.100Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:28.573Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:28.575Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:29.190Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:28.094Z", "updatedAt": "2026-10-22T19:36:29.190Z", "duplicate": true } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:29.639229+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_baseline" }, "attempts": 1, "ref": "178QU2OJX7.7RBV0F", "appliedAt": "2026-10-22T19:36:28.572Z", "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": "8b0d7360284bab45884e2c279548becd8f40deda15cea18742ecbdac1beee8aa" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:28.094Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:28.096Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:28.100Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:28.573Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:28.575Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:29.190Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:28.094Z", "updatedAt": "2026-10-22T19:36:29.190Z" } ] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs · baseline effects · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:29.878922+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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 effects · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-baseline", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline_effects" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T19:36:30.299669+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "364", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-baseline", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline_effects" } }Recorded response · HTTP 200
{ "runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline_effects" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_baseline" }, "attempts": 1, "ref": "17FU57IO6S.CUO2I9", "appliedAt": "2026-10-22T19:36:30.185Z", "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": "30e7c81232b706f204b07f2801313056fbe69cbb1c3fcf7a9e088e2429679d57" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:29.997Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:29.998Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:30.006Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:30.185Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:30.187Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:29.997Z", "updatedAt": "2026-10-22T19:36:30.187Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request de63a5da2d10 · processing 14.66ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-baseline: payroll pr_baseline could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "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.66ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "230", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-baseline: payroll pr_baseline could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0PAYROLL01", "message": { "bot_id": "bot_75a5e948805840f4b145706ea7", "client_msg_id": "cli_2f8362dcab7c4aa7950659ae3b", "name": "item-b0b382", "old_name": "Sample Old", "parent_user_id": "par_ef87fdd00dc74ebab235a07bb3", "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": "17FU57IO6S.CUO2I9" } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs · baseline effects · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:30.636477+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline_effects" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_baseline" }, "attempts": 1, "ref": "17FU57IO6S.CUO2I9", "appliedAt": "2026-10-22T19:36:30.185Z", "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": "30e7c81232b706f204b07f2801313056fbe69cbb1c3fcf7a9e088e2429679d57" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:29.997Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:29.998Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:30.006Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:30.185Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:30.187Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:29.997Z", "updatedAt": "2026-10-22T19:36:30.187Z" } ] } - · POST app request /invocations · baseline effects · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-baseline", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline_effects" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T19:36:30.901240+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "364", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-baseline", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline_effects" } }Recorded response · HTTP 200
{ "runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline_effects" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_baseline" }, "attempts": 1, "ref": "17FU57IO6S.CUO2I9", "appliedAt": "2026-10-22T19:36:30.185Z", "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": "d073f933f69a657d16597593c42b4c26166f98d088938c659d7567178aefbadb" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:29.997Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:29.998Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:30.006Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:30.185Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:30.187Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:30.751Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:29.997Z", "updatedAt": "2026-10-22T19:36:30.751Z", "duplicate": true } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs · baseline effects · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/baseline_effects/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:31.242888+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "baseline-effects-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "baseline_effects" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_baseline" }, "attempts": 1, "ref": "17FU57IO6S.CUO2I9", "appliedAt": "2026-10-22T19:36:30.185Z", "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": "d073f933f69a657d16597593c42b4c26166f98d088938c659d7567178aefbadb" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:29.997Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:29.998Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:30.006Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:30.185Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:30.187Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:30.751Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:29.997Z", "updatedAt": "2026-10-22T19:36:30.751Z" } ] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs · clean payroll submitted · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:31.482020+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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 payroll submitted · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-clean-payroll-submitted", "payrollId": "pr_clean_payroll_submitted", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "clean_payroll_submitted" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:31.881748+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "408", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-clean-payroll-submitted", "payrollId": "pr_clean_payroll_submitted", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "clean_payroll_submitted" } }Recorded response · HTTP 200
{ "runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "clean_payroll_submitted" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_clean_payroll_submitted" }, "attempts": 1, "ref": "17BGZ6TEDB.Y89RBP", "appliedAt": "2026-10-22T19:36:31.772Z", "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": "5a8a4849ea60447f13e0348e699773d5658dcca40dd0ff84edac1e7404ff69ca" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:31.591Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:31.593Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:31.596Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:31.772Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:31.774Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:31.591Z", "updatedAt": "2026-10-22T19:36:31.774Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 092d64460457 · processing 13.85ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-clean-payroll-submitted: payroll pr_clean_payroll_submitted could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "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.85ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "260", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-clean-payroll-submitted: payroll pr_clean_payroll_submitted could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0PAYROLL01", "message": { "bot_id": "bot_5c05ed63afc349aca3375a338e", "client_msg_id": "cli_f77ac994ea804edebbc6cbc6d0", "name": "item-8c8c50", "old_name": "Sample Old", "parent_user_id": "par_7edd27f26c044ae7a82b740617", "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": "17BGZ6TEDB.Y89RBP" } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs · clean payroll submitted · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:32.200196+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "clean_payroll_submitted" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_clean_payroll_submitted" }, "attempts": 1, "ref": "17BGZ6TEDB.Y89RBP", "appliedAt": "2026-10-22T19:36:31.772Z", "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": "5a8a4849ea60447f13e0348e699773d5658dcca40dd0ff84edac1e7404ff69ca" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:31.591Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:31.593Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:31.596Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:31.772Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:31.774Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:31.591Z", "updatedAt": "2026-10-22T19:36:31.774Z" } ] } - · POST app request /invocations · clean payroll submitted · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-clean-payroll-submitted", "payrollId": "pr_clean_payroll_submitted", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "clean_payroll_submitted" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:32.437717+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "408", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-clean-payroll-submitted", "payrollId": "pr_clean_payroll_submitted", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "clean_payroll_submitted" } }Recorded response · HTTP 200
{ "runId": "clean-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "clean_payroll_submitted" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_clean_payroll_submitted" }, "attempts": 1, "ref": "17BGZ6TEDB.Y89RBP", "appliedAt": "2026-10-22T19:36:31.772Z", "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": "10158f6270100006954d3891dccca79eaa83d7107efa6a8cabb2d26f6fb2dbe9" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:31.591Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:31.593Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:31.596Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:31.772Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:31.774Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:32.324Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:31.591Z", "updatedAt": "2026-10-22T19:36:32.324Z", "duplicate": true } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs · clean payroll submitted · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/clean_payroll_submitted/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:32.765381+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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-payroll-submitted-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "clean_payroll_submitted" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_clean_payroll_submitted" }, "attempts": 1, "ref": "17BGZ6TEDB.Y89RBP", "appliedAt": "2026-10-22T19:36:31.772Z", "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": "10158f6270100006954d3891dccca79eaa83d7107efa6a8cabb2d26f6fb2dbe9" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:31.591Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:31.593Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:31.596Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:31.772Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:31.774Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:32.324Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:31.591Z", "updatedAt": "2026-10-22T19:36:32.324Z" } ] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs · anomalies flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:32.994355+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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 · anomalies flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-anomalies-flagged", "payrollId": "pr_anomalies_flagged", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "anomalies_flagged" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:33.420690+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-anomalies-flagged", "payrollId": "pr_anomalies_flagged", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "anomalies_flagged" } }Recorded response · HTTP 200
{ "runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "anomalies_flagged" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 1 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_anomalies_flagged" }, "attempts": 1, "ref": "17G7T705YH.UYYGOI", "appliedAt": "2026-10-22T19:36:33.300Z", "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": "f78495bad4bbac3f3a1d2111fd7332e95b7cf6553d867053c7b79f9901556078" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:33.119Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:33.121Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:33.124Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:33.300Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:33.303Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:33.119Z", "updatedAt": "2026-10-22T19:36:33.303Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 7c78c1511cc0 · processing 14.58ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-anomalies-flagged: payroll pr_anomalies_flagged could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "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.58ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "248", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-anomalies-flagged: payroll pr_anomalies_flagged could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0PAYROLL01", "message": { "bot_id": "bot_015a737303ff42a5aff8a34555", "client_msg_id": "cli_b3ab3b2885a94b288c5faadcfa", "name": "item-8b0761", "old_name": "Sample Old", "parent_user_id": "par_d04266337ded451f95aa140f52", "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": "17G7T705YH.UYYGOI" } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs · anomalies flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:33.742943+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "anomalies_flagged" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 1 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_anomalies_flagged" }, "attempts": 1, "ref": "17G7T705YH.UYYGOI", "appliedAt": "2026-10-22T19:36:33.300Z", "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": "f78495bad4bbac3f3a1d2111fd7332e95b7cf6553d867053c7b79f9901556078" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:33.119Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:33.121Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:33.124Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:33.300Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:33.303Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:33.119Z", "updatedAt": "2026-10-22T19:36:33.303Z" } ] } - · POST app request /invocations · anomalies flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-anomalies-flagged", "payrollId": "pr_anomalies_flagged", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "anomalies_flagged" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:33.987800+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-anomalies-flagged", "payrollId": "pr_anomalies_flagged", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "anomalies_flagged" } }Recorded response · HTTP 200
{ "runId": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "anomalies_flagged" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 1 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_anomalies_flagged" }, "attempts": 1, "ref": "17G7T705YH.UYYGOI", "appliedAt": "2026-10-22T19:36:33.300Z", "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": "2e86caa54391c76a48f6eb31e094b27c898d4c44d4c06c4d5da4ff16be9436f8" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:33.119Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:33.121Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:33.124Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:33.300Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:33.303Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:33.861Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:33.119Z", "updatedAt": "2026-10-22T19:36:33.861Z", "duplicate": true } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs · anomalies flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/anomalies_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:34.310250+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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": "anomalies-flagged-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "anomalies_flagged" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 1 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_anomalies_flagged" }, "attempts": 1, "ref": "17G7T705YH.UYYGOI", "appliedAt": "2026-10-22T19:36:33.300Z", "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": "2e86caa54391c76a48f6eb31e094b27c898d4c44d4c06c4d5da4ff16be9436f8" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:33.119Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:33.121Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:33.124Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:33.300Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:33.303Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:33.861Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:33.119Z", "updatedAt": "2026-10-22T19:36:33.861Z" } ] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/preparer_cannot_approve/runs · preparer cannot approve · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/preparer_cannot_approve/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:34.540513+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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 · preparer cannot approve · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-preparer-cannot-approve", "payrollId": "pr_preparer_cannot_approve", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "preparer_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:36:34.963270+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "408", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-preparer-cannot-approve", "payrollId": "pr_preparer_cannot_approve", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "preparer_cannot_approve" } }Recorded response · HTTP 200
{ "runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "preparer_cannot_approve" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_preparer_cannot_approve" }, "attempts": 1, "ref": "17OWARM1EK.3CB0GH", "appliedAt": "2026-10-22T19:36:34.841Z", "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": "bf866dae99b12574c0b0f221201da6b70986e041d5e897ecbaaa120640ae367e" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:34.660Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:34.661Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:34.665Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:34.841Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:34.843Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:34.660Z", "updatedAt": "2026-10-22T19:36:34.843Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 765b5b610357 · processing 13.71ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-preparer-cannot-approve: payroll pr_preparer_cannot_approve could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "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.71ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "260", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-preparer-cannot-approve: payroll pr_preparer_cannot_approve could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0PAYROLL01", "message": { "bot_id": "bot_ebe802b6cc8f47328342e1c301", "client_msg_id": "cli_fde6512a119c47189199b9b608", "name": "item-280265", "old_name": "Sample Old", "parent_user_id": "par_5de85537326c4675956e0706e8", "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": "17OWARM1EK.3CB0GH" } - · POST app request /invocations · preparer cannot approve · HTTP 404
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "signal", "runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc", "actionId": "payroll.review:pr_preparer_cannot_approve", "value": "approve", "userId": "U_PREP" }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:35.196610+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "180", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "signal", "runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc", "actionId": "payroll.review:pr_preparer_cannot_approve", "value": "approve", "userId": "U_PREP" }Recorded response · HTTP 404
{ "result": "no_such_signal", "runId": "preparer-cannot-approve-vr_42e0d5627b754acda8a2603350d1d9bc", "actionId": "payroll.review:pr_preparer_cannot_approve" } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs · deadline holds flagged pays rest · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:35.452658+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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 · deadline holds flagged pays rest · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-deadline-holds-flagged-pays-rest", "payrollId": "pr_deadline_holds_flagged_pays_rest", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "deadline_holds_flagged_pays_rest" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:35.888488+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "444", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-deadline-holds-flagged-pays-rest", "payrollId": "pr_deadline_holds_flagged_pays_rest", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "deadline_holds_flagged_pays_rest" } }Recorded response · HTTP 200
{ "runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "deadline_holds_flagged_pays_rest" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_deadline_holds_flagged_pays_rest" }, "attempts": 1, "ref": "170443TL9F.3959TI", "appliedAt": "2026-10-22T19:36:35.735Z", "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": "106e1dcf23bc71e4e6c6a8ba48b4791556ee578b69a7b4333664401f555b988b" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:35.560Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:35.561Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:35.564Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:35.735Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:35.737Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:35.560Z", "updatedAt": "2026-10-22T19:36:35.737Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request b673cba2d57f · processing 18.06ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-deadline-holds-flagged-pays-rest: payroll pr_deadline_holds_flagged_pays_rest could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "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: 18.06ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "278", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-deadline-holds-flagged-pays-rest: payroll pr_deadline_holds_flagged_pays_rest could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0PAYROLL01", "message": { "bot_id": "bot_e01a7c53d09b4109ab4b299e5f", "client_msg_id": "cli_b6b34c606d6443b39d53ffa4f6", "name": "item-6b2e3e", "old_name": "Sample Old", "parent_user_id": "par_ccd2ec5e323845ba851a25341d", "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": "170443TL9F.3959TI" } - · POST app request /invocations · deadline holds flagged pays rest · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "tick" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T19:36:36.133981+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "17", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "12" }Request body
{ "action": "tick" }Recorded response · HTTP 200
{ "woken": [] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs · deadline holds flagged pays rest · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:36.477180+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "deadline_holds_flagged_pays_rest" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_deadline_holds_flagged_pays_rest" }, "attempts": 1, "ref": "170443TL9F.3959TI", "appliedAt": "2026-10-22T19:36:35.735Z", "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": "106e1dcf23bc71e4e6c6a8ba48b4791556ee578b69a7b4333664401f555b988b" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:35.560Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:35.561Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:35.564Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:35.735Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:35.737Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:35.560Z", "updatedAt": "2026-10-22T19:36:35.737Z" } ] } - · POST app request /invocations · deadline holds flagged pays rest · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-deadline-holds-flagged-pays-rest", "payrollId": "pr_deadline_holds_flagged_pays_rest", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "deadline_holds_flagged_pays_rest" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:36.704502+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "444", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-deadline-holds-flagged-pays-rest", "payrollId": "pr_deadline_holds_flagged_pays_rest", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "deadline_holds_flagged_pays_rest" } }Recorded response · HTTP 200
{ "runId": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "deadline_holds_flagged_pays_rest" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_deadline_holds_flagged_pays_rest" }, "attempts": 1, "ref": "170443TL9F.3959TI", "appliedAt": "2026-10-22T19:36:35.735Z", "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": "f6b0f174c682bbbd664685fad00f68cf42725436d54a8d29f52a3407870b1228" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:35.560Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:35.561Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:35.564Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:35.735Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:35.737Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:36.588Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:35.560Z", "updatedAt": "2026-10-22T19:36:36.588Z", "duplicate": true } - · POST app request /invocations · deadline holds flagged pays rest · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "tick" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T19:36:36.935607+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "17", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "12" }Request body
{ "action": "tick" }Recorded response · HTTP 200
{ "woken": [] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs · deadline holds flagged pays rest · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/deadline_holds_flagged_pays_rest/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:37.291285+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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": "deadline-holds-flagged-pays-rest-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "deadline_holds_flagged_pays_rest" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_deadline_holds_flagged_pays_rest" }, "attempts": 1, "ref": "170443TL9F.3959TI", "appliedAt": "2026-10-22T19:36:35.735Z", "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": "f6b0f174c682bbbd664685fad00f68cf42725436d54a8d29f52a3407870b1228" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:35.560Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:35.561Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:35.564Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:35.735Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:35.737Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:36.588Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:35.560Z", "updatedAt": "2026-10-22T19:36:36.588Z" } ] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs · gusto unavailable never submits · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:37.539826+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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 · gusto unavailable never submits · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-gusto-unavailable-never-submits", "payrollId": "pr_gusto_unavailable_never_submits", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "gusto_unavailable_never_submits" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:37.944518+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "440", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-gusto-unavailable-never-submits", "payrollId": "pr_gusto_unavailable_never_submits", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "gusto_unavailable_never_submits" } }Recorded response · HTTP 200
{ "runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "gusto_unavailable_never_submits" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_gusto_unavailable_never_submits" }, "attempts": 1, "ref": "17JZANJEIJ.5UEQ8G", "appliedAt": "2026-10-22T19:36:37.836Z", "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": "9897f892ecd088bb4949158e10d345c21b0e7ea06e26716d983799af63f5da75" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:37.660Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:37.661Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:37.663Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:37.836Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:37.838Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:37.660Z", "updatedAt": "2026-10-22T19:36:37.838Z", "duplicate": false } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request bf6468bf268a · processing 14.78ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/460b43d7b8/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-gusto-unavailable-never-submits: payroll pr_gusto_unavailable_never_submits could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "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.78ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "276", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0PAYROLL01", "text": ":warning: PAYREV-gusto-unavailable-never-submits: payroll pr_gusto_unavailable_never_submits could not be reviewed (Gusto unreadable). It has not been submitted; check it by hand before the deadline.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0PAYROLL01", "message": { "bot_id": "bot_481c95ff37304580977fdcaa73", "client_msg_id": "cli_3f9c0fce1cfb496dab9b353cc1", "name": "item-e38cf1", "old_name": "Sample Old", "parent_user_id": "par_06364b2df2804a78b77263e87e", "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": "17JZANJEIJ.5UEQ8G" } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs · gusto unavailable never submits · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:38.275340+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "gusto_unavailable_never_submits" }, "duplicateStarts": 0, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_gusto_unavailable_never_submits" }, "attempts": 1, "ref": "17JZANJEIJ.5UEQ8G", "appliedAt": "2026-10-22T19:36:37.836Z", "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": "9897f892ecd088bb4949158e10d345c21b0e7ea06e26716d983799af63f5da75" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:37.660Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:37.661Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:37.663Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:37.836Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:37.838Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T19:36:37.660Z", "updatedAt": "2026-10-22T19:36:37.838Z" } ] } - · POST app request /invocations · gusto unavailable never submits · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-gusto-unavailable-never-submits", "payrollId": "pr_gusto_unavailable_never_submits", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "gusto_unavailable_never_submits" } }'This view is reconstructed from the saved method, URL, and sanitized headers and 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:36:38.508000+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "440", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "PAYREV-gusto-unavailable-never-submits", "payrollId": "pr_gusto_unavailable_never_submits", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "gusto_unavailable_never_submits" } }Recorded response · HTTP 200
{ "runId": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "gusto_unavailable_never_submits" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_gusto_unavailable_never_submits" }, "attempts": 1, "ref": "17JZANJEIJ.5UEQ8G", "appliedAt": "2026-10-22T19:36:37.836Z", "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": "670834a523d98cf9ef4c13215f86a0c67cc3277d46b55877fd386a78f5fadd84" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:37.660Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:37.661Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:37.663Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:37.836Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:37.838Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:38.392Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:37.660Z", "updatedAt": "2026-10-22T19:36:38.392Z", "duplicate": true } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs · gusto unavailable never submits · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/cases/gusto_unavailable_never_submits/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:38.867832+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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": "gusto-unavailable-never-submits-vr_42e0d5627b754acda8a2603350d1d9bc", "workflow": "payroll-anomaly-review", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "People", "team": "payroll-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "gusto_unavailable_never_submits" }, "duplicateStarts": 1, "agents": [ { "name": "payroll", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "employees", "status": "skipped", "error": "not configured: gusto", "errorCode": "not_configured", "durationMs": 0 }, { "name": "anomalies", "status": "failed", "error": "FatalError: payroll or employees unavailable; nothing will be submitted", "errorCode": "fatal", "durationMs": 0 } ], "actions": [ { "id": "slack.post_blocked", "kind": "slack.post_blocked", "provider": "slack", "agent": "anomalies", "gate": "auto", "status": "applied", "summary": { "payroll": "pr_gusto_unavailable_never_submits" }, "attempts": 1, "ref": "17JZANJEIJ.5UEQ8G", "appliedAt": "2026-10-22T19:36:37.836Z", "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": "670834a523d98cf9ef4c13215f86a0c67cc3277d46b55877fd386a78f5fadd84" }, "output": { "mode": "blocked" }, "events": [ { "at": "2026-10-22T19:36:37.660Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T19:36:37.661Z", "msg": "agents: payroll=skipped, employees=skipped" }, { "at": "2026-10-22T19:36:37.663Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T19:36:37.836Z", "msg": "slack.post_blocked: applied" }, { "at": "2026-10-22T19:36:37.838Z", "msg": "done (partial)" }, { "at": "2026-10-22T19:36:38.392Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T19:36:37.660Z", "updatedAt": "2026-10-22T19:36:38.392Z" } ] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:39.100326+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "invalid-input-rejected-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "october", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "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:36:39.338500+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "368", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "81" }Request body
{ "action": "start", "runId": "invalid-input-rejected-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "october", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "invalid_input_rejected" } }Recorded response · HTTP 400
{ "error": "invalid input", "issues": [ "reviewId: review id like PAYREV-2026-10-31" ] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:39.661049+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_42e0d5627b754acda8a2603350d1d9bc' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "invalid-input-rejected-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "october", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "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:36:39.890279+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "368", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "81" }Request body
{ "action": "start", "runId": "invalid-input-rejected-vr_42e0d5627b754acda8a2603350d1d9bc", "input": { "reviewId": "october", "payrollId": "pr_baseline", "preparer": "U_PREP", "reviewers": [ "U_PREP", "U_CONTROLLER" ], "payrollChannel": "C0PAYROLL01" }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_42e0d5627b754acda8a2603350d1d9bc", "fs_case": "invalid_input_rejected" } }Recorded response · HTTP 400
{ "error": "invalid input", "issues": [ "reviewId: review id like PAYREV-2026-10-31" ] } - · GET app request /verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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/e78a39e11ab04700a9f742045a7a485386dfdc7571be360a/verify/runs/vr_42e0d5627b754acda8a2603350d1d9bc/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_42e0d5627b754acda8a2603350d1d9bc' \ --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:36:40.230888+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_42e0d5627b754acda8a2603350d1d9bc", "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.