Guest Machines
API referenceRuns

Resolve an uncertain tool outcome

POST/api/v1/runs/{run_id}/resolve-tool-outcome

Record an explicit human decision for a tool request whose external effect could not be confirmed. The run may remain paused while the decision is applied.

Generate one resolution_id and reuse it only when retrying the same decision. Copy the blocker and review values from the latest run response. Changed or stale values return 409.

When the review is not attestable, only abandon_operation is accepted. Guest Machines never infers whether the external effect occurred.

Generic resume and replan operations cannot bypass an active uncertain-outcome blocker.

Required access

Credentials: user session

Requires the existing mutation permission for the run and a direct authenticated human user session. Automation accounts, delegated tokens, agents, and background workflows cannot attest to an external outcome.

Authorization

UserSession
AuthorizationBearer <token>

A short-lived bearer token for a signed-in person. Use it only for the human integration-installation and consent steps; never store it as an integration credential.

In: header

Path Parameters

run_id*Run Id

Header Parameters

X-Org-Id?|

Selects the active organization for a direct user session that has more than one membership. Automation account keys and delegated tokens are each bound to one organization and ignore it.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Human decision and values copied from the current uncertain outcome.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/runs/0/resolve-tool-outcome" \  -H "Authorization: Bearer $GUEST_MACHINES_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "resolution_id": "8a9ff2c6-16e7-4c6e-8b2f-1aec855c6b95",    "resolution": "confirmed_applied",    "expected_blocker_id": "retry-blocker:v1:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",    "expected_review_digest": "review:v1:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"  }'
{  "resolution_id": "e25ae328-69b8-4e08-9f09-52d881051e39",  "blocker_id": "string",  "review_digest": "string",  "resolution": "abandon_operation",  "committed": true,  "resume_pending": true,  "wake_state": "dead",  "retry_not_before": "2019-08-24T14:15:22Z"}